我正在尝试将现有的JSON结构升级为更复杂的结构。
最初的想法是一堆X 动物,每个都有一堆特征:
JSON是这样的:
{
"animals":[
{"claws":"4", "eyes":"2"},
{"claws":"0", "eyes":"6"},
etc.
]
}
正如你所看到的,我没有命名每个动物对象,动物的特征是数组的一个元素。我可以在像 animals [x] .claws
这样的循环中使用它们现在我想为每只动物添加一个巢,例如:
但是如果没有命名每个动物对象(同名“动物”)并使用数组代替动物中的内容,我就无法做到这一点:
{
"animals":[
{"animal":[
{"head":
{"eyes":"2", "ears":"2"}
},
{"body":
{"claws":"4", "tails":"1", "legs":"4"}
}
]},
{"animal":[
{"head":
{"eyes":"6", "ears":"0"}
},
{"body":
{"claws":"0", "tails":"0", "legs":"8"}
}
]}
]
}
我发现它很糟糕,因为:
1)我不需要每个动物结构的名称(特别是因为它们都被命名为“动物”),因为我想像以前一样迭代它们;
2)我不需要 head 和 body 的数组,因为我知道元素的数量和名称。
我希望我可以使用类似的东西,但它不起作用:
{
"animals":[
{
{"head":
{"eyes":"2", "ears":"2"}
},
{"body":
{"claws":"4", "tails":"1", "legs":"4"}
}
},
{
{"head":
{"eyes":"6", "ears":"0"}
},
{"body":
{"claws":"0", "tails":"0", "legs":"8"}
}
}
]
}
那么有没有使用数组和名称进行嵌套的方法呢?
答案 0 :(得分:1)
当然有!哈希是键值对,这就是您在使用{}
时需要密钥的原因。 Array是一个简单的集合。因此{}
不能成为简单集合(这就是为什么你必须使用密钥,而后者没有'是的,因为你的示例中的{}
是一个简单的集合,看起来是{ {}, {}, {} ... }
,所以在这种情况下它必须是[ {}, {}, {} ... ]
),但你可以让它更简单,只需要#&# 39; t多次嵌套:
{
"animals":[
{
"head": {
"eyes":"2",
"ears":"2"
},
"body": {
"claws":"4",
"tails":"1",
"legs":"4"
}
},
# ...
]
}