【问题标题】:JSON object as value?JSON对象作为值?
【发布时间】:2016-06-26 15:56:38
【问题描述】:

在JSON中,当一个对象是一个值时,正确的写法是什么?

var text ='{"phone":{"gtd": "080"}}';

var text ='{"phone":"{gtd: 080}"}';

这可能是一个简单的查询。我问的原因是因为 JSON 解析和 stringify 都适用。哪个是对的?

【问题讨论】:

  • 您确定var text ='{"phone":"{gtd: 080}'}"; 是有效的声明吗?
  • 应该... '}"... "}'
  • gtd 的值不相等。一个是字符串,一个是数字(带有令人讨厌的前导零)。
  • 如果您的问题有错别字,请edit 它,不要在 cmets 中留下更正。关于JSON.parse() 两者都适用的事实,它可能在不给出错误的意义上“起作用”,但不会给出相同的结果。第一个是您(几乎可以肯定)想要的。
  • JSON 是一种文本数据交换格式,如 XML、YAML 或 CSV。 JavaScript 对象是 JavaScript 语言的值。 " 是一个 JSON 对象数组" 不。也许这会有所帮助:en.wikipedia.org/wiki/JSON.

标签: javascript jquery html json ajax


【解决方案1】:

如果你放“{}”它不是一个对象而是一个字符串,正如@Felix Kling 080所指出的那样实际上不是一个数字,所以它应该表示为一个字符串。

var text ='{"phone":{"gtd": "080"}}';

对象中的键名必须是字符串

【讨论】:

  • 080 不是 JSON 中的有效值(数字)。无法解析您的示例。
  • @FelixKling - json.org 说“一个值可以是双引号中的字符串、数字、true 或 false 或 null,或者对象或数组。这些结构可以嵌套。 ”。所以 080 是有效的吧?
  • 哦,我没有注意到它是 0...80 我已经有点困了...对不起。你说得对,它不应该解析
  • @FelixKling - 你是对的,0 然后是 .强制性的。否则 [1-9]。谢谢
猜你喜欢
  • 1970-01-01
  • 2013-12-17
  • 1970-01-01
  • 1970-01-01
  • 2017-11-13
  • 2019-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多