Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
标准JSON文档结构的文档源?_Json - Fatal编程技术网

标准JSON文档结构的文档源?

标准JSON文档结构的文档源?,json,Json,我正在开发一个.NETRESTAPI,它返回一些JSON数据。API的使用者是嵌入式客户端。我们一直在尝试建立我们将使用的JSON的结构。嵌入式客户端想要使用的格式是我在使用JSON时从未见过的。我建议它不是典型的JSON。我遇到了这样一个问题,“典型”JSON格式记录在哪里 作为JSON的一个示例,我通常看到: { "item" : { "users": [ ... list of user objects ... ], "times": [ ...

我正在开发一个.NETRESTAPI,它返回一些JSON数据。API的使用者是嵌入式客户端。我们一直在尝试建立我们将使用的JSON的结构。嵌入式客户端想要使用的格式是我在使用JSON时从未见过的。我建议它不是典型的JSON。我遇到了这样一个问题,“典型”JSON格式记录在哪里

作为JSON的一个示例,我通常看到:

{
    "item" : {
        "users": [ ... list of user objects ... ],
        "times": [   ... list of time objects ...],
    }
}
非典型JSON的一个示例:

{
    "item" : [
        {  
            "users": [ ... list of user objects ... ]  
        },
        {
            "times": [   ... list of time objects ...]
        },
    ]
}
在第二个示例中,项包含一个对象数组,每个对象都包含一个属性,该属性的值是一个实体数组。这是有效的JSON。然而,我还没有遇到过另一个JSON实例,当它不是一个任意的对象数组,而是事实上是item对象上的一组属性列表时,它是以这种方式构造的

在搜索json.org、stackoverflow.com和互联网上的其他地方时,我没有找到任何关于为什么json的结构遵循上面的典型示例而不是第二个示例的指南


您是否可以提供文档的链接,为上述一种或另一种格式提供建议?

不是链接,而是简单明了的回答:项目索引为0、1、2、。。。或者键入用户、时间。无论您使用什么软件,都可以轻松快速地获取索引或键控数据。但不是你所说的非典型JSON:为了找到用户,我必须遍历数组并找到一个包含关键用户的字典。但可能会有两本或更多的字典使用该键。那我该怎么办呢?如果使用JSON模式,则无法检查非典型JSON。在iOS中,在我写的典型案例中

NSArray* users = itemDict [@"users"];
对于非典型的JSON,我必须编写

NSArray* users = nil;
for (NSDictionary* dict in itemArray)
  if (dict [@"users"] != nil)
    users = dict [@"users"];

但对于关键用户的多个DICT检查仍然没有错误。这是一个错误,在第一种情况下甚至是不可能的。所以,只要告诉他们,他们所要求的是垃圾,除了不必要的工作,什么也不创造。对于其他软件,您可能也有同样的问题

谢谢你的回复。您提出了一个我没有想到的观点,即在对象数组中可能存在重复项。垃圾也是一个恰当的描述。