javascript - 为什么我不能在 JS 中解析没有引号的 JSON?

标签 javascript json

为什么我无法解析 JSON 对象?我需要将其用引号引起来才能进行解析。

// JSON object
var foo = {"sayHi": {"nl":"hoi", "en":"hello"}};
alert(foo.sayHi.en);

// string       
var foo = '{"sayHi": {"nl":"hoi", "en":"hello"}}';      
alert(JSON.parse(foo).sayHi.nl);

编辑:

// does not work
var foo = {"sayHi": {"nl":"hoi", "en":"hello"}};
alert(JSON.parse(foo).sayHi.nl);

是的,两者都有效,但第一个 foo 不适用于 with parse。而且我更喜欢第一个 foo,因为我不需要担心换行符、引号和加号。

编辑2:

我真的在寻找一种很好的方法来将 JSON 存储在变量中,而不是使用 ajax 调用来获取它。

最佳答案

因为这个{"sayHi": {"nl":"hoi", "en":"hello"}}已经是js对象了

而这个 '{"sayHi": {"nl":"hoi", "en":"hello"}}' 只是一个字符串,包含任何内容,可能是 json

关于javascript - 为什么我不能在 JS 中解析没有引号的 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15248827/

相关文章:

java - Retrofit2 - 在带有正文的 POST 上收到 400 个错误请求

javascript - 使用 django 在 JS 中获取和使用 python 嵌套列表

javascript - 从浏览器访问前端 SPA 链接时,后端因找不到路由而触发

javascript - API请求状态200不可访问

javascript - chop 字符串 JavaScript

ruby - 解析没有引用键的 JSON

javascript - 使 $scope 在非 Angular 函数中可用

javascript - 使用 javascript 和 html 为在线考试设置计时器

python - 在 Django 1.9 中,使用 JSONField( native postgres jsonb)的约定是什么?

javascript - 将另一个对象添加到现有的 JSON 中