jstree的json数据结构在https://github.com/vakata/jstree中定义,这是一个示例
[ { "text" : "Root node", "children" : [ "Child node 1", "Child node 2" ] } ]
值得注意的是
子项键可用于将子项添加到分支,它应该是一个数组
但是稍后在使用AJAX和惰性加载节点填充树部分中,它显示了将set child设置为false来指示何时未处理child
[{
"id":1,"text":"Root node","children":[
{"id":2,"text":"Child node 1","children":true},
{"id":3,"text":"Child node 2"}
]
}]
所以在这里我们看到孩子既用作数组又用作布尔值
我以jstree为例,因为这是我遇到的问题,但是我的问题实际上是一个通用的json问题。我的问题是,对于JSON中的相同元素,它是否为两种不同类型(数组和布尔值)是否有效JSON?
从结构上讲,它们都是有效的JSON数据包。没关系,因为JSON比XML(带有XSD或DTD)严格一些。按照:https : //www.w3schools.com/js/js_json_objects.asp,
JSON objects are surrounded by curly braces {}.
JSON objects are written in key/value pairs.
Keys must be strings, and values must be a valid JSON data type (string, number, object, array, boolean or null).
Keys and values are separated by a colon.
Each key/value pair is separated by a comma.
话虽如此,如果允许发送方发送此类JSON,则仅需说明的是,服务器端在接收到此类不同的数据包时必须处理此差异。这是一个看起来很糟糕的合同,因此服务器可能需要做一些额外的工作来管理它。服务器端处理此类传入的JSON数据包可能会变得棘手。
请参阅:当元素可以为供使用的不同类型时,如何创建JSON数据结构
您可以在https://jsonlint.com/上验证JSON是否可以
在此答案中查看有关JSON的更多信息:https : //stackoverflow.com/a/4862511/945214
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句