列表和布尔值之间的JSON数据结构是否有效?

保罗·泰勒

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

排行榜的有效数据结构,即记录列表(名称,点)-高效的搜索(名称),搜索(排名)和更新(点)

C#最有效的数据结构,可插入和删除下半部分

布尔值是有效的JSON吗

通过保证按值传递布尔值是否有效?

布尔值的“ if let”和“ if”之间是否有性能差异?

有一种有效的图像格式可以显示布尔值吗?

连续检查两个True(布尔值1)值的最快和/或最有效的方法是什么?

在scala中区分具有布尔值的元组的有效方法

除二进制搜索树外,是否有任何有效的数据结构来表示Set

是否有一个数据结构可以有效地找到彼此靠近的点?

用于保存禁止对列表的最有效数据结构

TimeZone.knownTimeZoneIdentifiers的有效数据结构?

哪种c ++ stl数据结构对存储唯一值及其计数最有效?

朱莉娅(Julia):给定itr变量,是否有一种有效的数据结构和算法来获取itr的前n个值的索引?

基于有效比较的集式数据结构,用于插入和查找,但不删除

Python最有效的数据结构来保存值并检查值是否存在

使用python在numpy布尔值之间转换为两种状态的有效方法

以这种方式用booleanValue()检查布尔值是否有效

这是用于存储关注者和关注者的最有效的数据结构

python:列表和字典之间的数据结构效率

如何创建自己的有效数据结构?

选择最有效的数据结构

isNaN和NaN是否具有布尔值

是否有允许有效范围查询的 python 数据结构?

哪种数据结构对键值对有效?

用于存储映射到 vb 中字符串名称的布尔值列表的数据结构

有效地在列表(或其他数据结构)中插入多个元素并保持它们的顺序

将字典转换为平面数据结构(列表或元组)的有效方法

用于插入和排序的最有效数据结构