JSON - 并非书中Dojo diji.tree示例代码中引用的所有字段

时间:2009-09-03 19:55:35

标签: json dojo

O'Reilly的书“Dojo - The Definitive Guide”页面378显示了以下示例树结构,它应该是JSON。它似乎可以用于构建Dijit Tree结构。

  

{
   标识符:'name',
   标签: '名',
   项目:[
   {
     名称:“编程语言”,
     孩子:[
  等......

单词标识符,标签,项目,名称和子项是否应用引号括起来?

我正在编写一个Python程序来生成与其所需树结构兼容的语法。为了测试我的输出,我尝试了:

testDict =“xxxx”其中xxxx是上面假定JSON字符串的字符串。 它始终给出错误,即“标识符”未定义。

所以我很好奇这是否是一个错字 - 或者我是否需要学习一些新的JSON关键字或功能。

谢谢, 尼尔沃尔特斯

2 个答案:

答案 0 :(得分:2)

JSON实际上没有任何其他功能。这就是它的美丽:)

您不必将这些名称用引号括起来。冒号之前的名称应该被引用,严格按照JSON规范。为什么?主要是(仅?)因为当保留字用作对象属性时JavaScript会被扰乱 - 例如,如果你有名为'function'或'return'的属性。引用这些名称可以始终避免这个问题。道场并不在意。它只是使用eval来解析JSON,只要你避免使用关键字,它就不会强制使用引号。如果您希望符合JSON标准,则可以一致地使用引号。

我不确定您的testDict示例究竟出现了什么问题。我不完全理解上下文(什么是testDict,你用什么语言来设置该字符串,它是如何使用的等等)也许你需要在JSON中转义一些东西,比如嵌套的双引号?

答案 1 :(得分:1)

这些不是JSON的新关键字或功能,但它们是dojo期望结构化JSON文件的方式。你应该用引号将它们包起来。 Here's an example from dojocampus