首页 > 解决方案 > 如何使用 JSON.parse() 解析多个对象

问题描述

let string = "{
    "path": "transition_26_1_0 - Copy (2) - Copy - Copy - Copy.xml",
    "fullPath": "D:\\fileuploader\\TEST_2\\transition_26_1_0 - Copy (2) - Copy - Copy - Copy.xml",
    "basename": "transition_26_1_0 - Copy (2) - Copy - Copy - Copy.xml",
    "stats": {
        "dev": 3356173649,
        "mode": 33206,
        "nlink": 1,
        "uid": 0,
        "gid": 0,
        "rdev": 0,
        "ino": 1125899908018589,
        "size": 604,
        "atimeMs": 1560493097203.9585,
        "mtimeMs": 1510127196336.229,
        "ctimeMs": 1560493097204.9585,
        "birthtimeMs": 1560493097203.9585,
        "atime": "2019-06-14T06:18:17.204Z",
        "mtime": "2017-11-08T07:46:36.336Z",
        "ctime": "2019-06-14T06:18:17.205Z",
        "birthtime": "2019-06-14T06:18:17.204Z"
    }
}
{
    "path": "transition_26_1_0 - Copy (2) - Copy - Copy.xml",
    "fullPath": "D:\\fileuploader\\TEST_2\\transition_26_1_0 - Copy (2) - Copy - Copy.xml",
    "basename": "transition_26_1_0 - Copy (2) - Copy - Copy.xml",
    "stats": {
        "dev": 3356173649,
        "mode": 33206,
        "nlink": 1,
        "uid": 0,
        "gid": 0,
        "rdev": 0,
        "ino": 1688849861395786,
        "size": 604,
        "atimeMs": 1560493067976.2869,
        "mtimeMs": 1510127196336.229,
        "ctimeMs": 1560493067977.2869,
        "birthtimeMs": 1560493067976.2869,
        "atime": "2019-06-14T06:17:47.976Z",
        "mtime": "2017-11-08T07:46:36.336Z",
        "ctime": "2019-06-14T06:17:47.977Z",
        "birthtime": "2019-06-14T06:17:47.976Z"
    }
}"

console.log(JSON.parse(string))

我的字符串看起来像这样,我必须转换成对象数组,我尝试使用JSON.parse()螺母在这样的行抛出错误意外“{”。

注意/更新:我通过管道传输对象流(使用 Tranform 转换为字符串类型)并在我的子进程中通过管道传输到 process.stdout。

在父母中,我在 child.stdout.on("data") 上得到了上面的字符串

如果我只有一个对象意味着没有错误,但为此。如何将其转换为对象数组?

更新:在 Child.js 中

var jsonStream = through2.obj(function(chunk, encoding, callback) {
let details = JSON.stringify(chunk, null, 4) + ',' + '\n'
this.push(details)
callback()
})

files.pipe(jsonStream).pipe(process.stdout);

标签: javascriptnode.js

解决方案


您可以使用网站“ https://codebeautify.org/jsonviewer ”来了解您的 json 字符串是否正确。这是错误的,因为您可以使用数组或对象,而您的字符串不是两者之一。


推荐阅读