typescript 将.txt解析为JSON [已关闭]

7fhtutme  于 2023-02-17  发布在  TypeScript
关注(0)|答案(2)|浏览(130)
    • 已关闭**。此问题需要超过focused。当前不接受答案。
    • 想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

15小时前关门了。
Improve this question
我有一个txt文件,其结构如下

Title: Blazing Saddles
Release Year: 1974
Format: VHS
Stars: Mel Brooks, Clevon Little, Harvey Korman, Gene Wilder, Slim Pickens, Madeline Kahn

Title: Casablanca
Release Year: 1942
Format: DVD
Stars: Humphrey Bogart, Ingrid Bergman, Claude Rains, Peter Lorre

Title: Charade
Release Year: 1953
Format: DVD
Stars: Audrey Hepburn, Cary Grant, Walter Matthau, James Coburn, George Kennedy

Title: Cool Hand Luke
Release Year: 1967
Format: VHS
Stars: Paul Newman, George Kennedy, Strother Martin

我已经有了字符串格式的文件数据。不知何故,我必须将其转换为JSON。我必须尝试以这种方式拆分

file.buffer.toString().split('\n')

但我该怎么继续呢?

t2a7ltrp

t2a7ltrp1#

在换行符处拆分,用冒号拆分每一个字符串。使用reduce,当有空行时在累加器a中创建一个新对象,否则为遇到的每一个非空[key,value]对设置累加器中最近对象的属性。

const s = `Title: Blazing Saddles
Release Year: 1974
Format: VHS
Stars: Mel Brooks, Clevon Little, Harvey Korman, Gene Wilder, Slim Pickens, Madeline Kahn

Title: Casablanca
Release Year: 1942
Format: DVD
Stars: Humphrey Bogart, Ingrid Bergman, Claude Rains, Peter Lorre

Title: Charade
Release Year: 1953
Format: DVD
Stars: Audrey Hepburn, Cary Grant, Walter Matthau, James Coburn, George Kennedy

Title: Cool Hand Luke
Release Year: 1967
Format: VHS
Stars: Paul Newman, George Kennedy, Strother Martin`

console.log(s.split('\n').map(i=>i.split(': ')).reduce((a,[k,v]) =>
  (!v && a.push({}) || (a[a.length-1][k]=v), a), [{}]))
p8h8hvxi

p8h8hvxi2#

你可以使用这个npm库。https://www.npmjs.com/package/export-from-json我们也可以得到其他格式的csv,txt,xls等你可以检查我的用法示例:https://github.com/devStack03/node-csv-json-export

相关问题