使用多行时 Json 解析的问题

noo*_*iam 1 javascript json node.js

我试图创建一个 JSON 形式的对象数组,然后将它们解析回一个对象。下面是一个工作示例:

var personString = '{"name": "matt","age": 24,"faceFeatures":{"eyes": "green","nose": "medium"},
"hats":["Jays", "TO6", "BassPro"]}'

var person = JSON.parse(personString)
console.log(person)
Run Code Online (Sandbox Code Playgroud)

这段代码没有问题。但是,当我尝试清理代码并将其格式化为多行时,我的代码失败了,这是一个示例:

var personString = '{
    "name": "matt",
    "age": 24,
    "faceFeatures":{"eyes": "green","nose": "medium"},
    "hats":["Jays", "TO6", "BassPro"]
}'
Run Code Online (Sandbox Code Playgroud)

我使用了 JSON 验证器,它说这段代码仍然有效,但是,我的文本编辑器(sublime)不断给我粉红色的线条,说我有一个封闭的字符串,这对我来说没有意义。因为它与上面的代码完全相同!

当然,我更喜欢它的第二个格式化版本,因为它更易于阅读,并且在我使用对象数组时会用到。非常感谢任何帮助,谢谢!

Ari*_*rty 5

您不会像这样创建多行字符串,您需要添加\或使用模板文字

var personString = `{
    "name": "matt",
    "age": 24,
    "faceFeatures":{"eyes": "green","nose": "medium"},
    "hats":["Jays", "TO6", "BassPro"]
}`
// OR
var personString = '{ \
    "name": "matt",   \
    "age": 24,        \
    "faceFeatures":{"eyes": "green","nose": "medium"}, \
    "hats":["Jays", "TO6", "BassPro"] \
}'
Run Code Online (Sandbox Code Playgroud)