jstree 的 json 数据结构定义在https://github.com/vakata/jstree https://github.com/vakata/jstree,这是一个例子
[ { "text" : "Root node", "children" : [ "Child node 1", "Child node 2" ] } ]
值得注意的是它说
子键可用于将子项添加到分支,它应该
是一个数组
然而稍后在部分使用 AJAX 和延迟加载节点填充树它显示使用将子项设置为 false 来指示何时尚未处理子项
[{
"id":1,"text":"Root node","children":[
{"id":2,"text":"Child node 1","children":true},
{"id":3,"text":"Child node 2"}
]
}]
所以在这里我们看到孩子既被用作array并作为boolean
我在用jstree作为一个例子,因为这是我遇到问题的地方,但我的问题实际上是一个一般的 json 问题。我的问题是,对于 json 中的同一元素来说,它是两种不同类型(数组和布尔值)的有效 JSON 吗?
就结构而言,两者都是有效的 JSON 数据包。这没关系,因为 JSON 比 XML(带有 XSD 或 DTD)严格一些。按照:https://www.w3schools.com/js/js_json_objects.asp 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 数据包可能会变得很棘手。
See: 当元素可以是不同类型以供使用时,如何创建 JSON 数据结构 https://stackoverflow.com/questions/48541440/how-do-i-create-json-data-structure-when-element-can-be-different-types-in-for-u
您可以验证 JSON 是否正确https://jsonlint.com/ https://jsonlint.com/
在此答案中查看有关 JSON 的更多信息:https://stackoverflow.com/a/4862511/945214 https://stackoverflow.com/a/4862511/945214
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)