我有以下JSON结构,但我想知道是否有任何方法可以进一步简化它.可以以某种方式从所有条目中删除"成分"和"数量"以帮助减少它吗?
var cooking = {
"recipes" : [
{
"name":"pizza",
"ingredients" : [
{
"ingredient" : "cheese",
"quantity" : "100g"
},
{
"ingredient" : "tomato",
"quantity" : "200g"
}
]
},
{
"name":"pizza 2",
"ingredients" : [
{
"ingredient" : "ham",
"quantity" : "300g"
},
{
"ingredient" : "pineapple",
"quantity" : "300g"
}
]
}
]
};
Run Code Online (Sandbox Code Playgroud)
Zer*_*eus 15
是的,你可以简化一下:
var recipes = {
"pizza": {
"cheese": "100g",
"tomato": "200g"
},
"pizza 2": {
"ham": "300g",
"pineapple": "300g"
}
}
Run Code Online (Sandbox Code Playgroud)
一个解释:
您的示例的顶级是单项对象:{"recipes": <...>}.除非这是一个实际上有其他项目的对象的简化版本,否则这是多余的.您的代码知道它发送/接收的内容,因此那里没有额外的信息.
{"recipes": <...>}对象的值是两项对象的数组,带有键"name"和"ingredients".每当你有这样的数组时,用对象替换它就更有意义(并且更紧凑).根据经验:
如果在对象的数组的密钥可以被替换为
"key"和"value"并且仍然是有意义的,替换用单个阵列{"key_name": <value>, ...}对象.
同样的规则适用于您的[{"ingredient": <...>, "quantity": <...>}, ...]数组:每个对象都可以被键值对替换,并继续有意义.
最终结果是信息的这种表示长度为87个字符(删除了无关的空格),与原始的249个字符相比 - 减少了65%.
| 归档时间: |
|
| 查看次数: |
2380 次 |
| 最近记录: |