技术咨询:如何正确编写含指定数组结构的JSON格式?
正确编写目标JSON结构的方法
嘿,我来帮你搞定这个JSON格式的问题~
你给出的概念性结构里存在一个不符合JSON规范的问题:数组[]内部直接写"key": "key1"这类键值对是不允许的——JSON数组的元素必须是单个合法值(可以是字符串、数字、布尔值、null、对象或者其他数组),不能直接放置键值对。
根据你想要的结构,我整理了两种符合规范的写法,你可以根据实际需求选择:
情况1:每个属性对应包含键值对对象的数组
如果attrs下的"0"、"1"这些属性本身就是数组,且数组里要存放键值对结构,那需要把键值对包裹成对象再放进数组:
{ "attrs": { "0": [ { "key": "key1", "value": "value1" } ], "1": [], "n": [] } }
这里的核心是用{}把key和value包装成一个对象,让它成为数组的合法元素。
情况2:每个属性直接对应键值对对象
如果你其实不需要数组(可能是误加了[]),只是想让attrs下的每个属性对应一组key-value,可以去掉数组括号,直接写成对象:
{ "attrs": { "0": { "key": "key1", "value": "value1" }, "1": {}, "n": {} } }
额外的JSON规范小提示
为了避免以后再踩类似的坑,记住几个核心规则:
- 对象必须用
{}包裹,内部是"键": 值的键值对,多组键值对用逗号分隔 - 数组必须用
[]包裹,内部是任意合法的JSON值,多个值用逗号分隔 - 所有的键和字符串值都必须用双引号包裹(单引号不合法)
- 最后一个键值对或数组元素后面不能加多余的逗号
内容的提问来源于stack exchange,提问作者Luca Calabrese
相关产品推荐
相关产品推荐

