简化JSON结构
我有以下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"
}
]
}
]
};
是的,你可以简化这一点:
var recipes = {
"pizza": {
"cheese": "100g",
"tomato": "200g"
},
"pizza 2": {
"ham": "300g",
"pineapple": "300g"
}
}
一个解释:
您示例的顶层是一个单一项目对象: {"recipes": <...>}
。 除非这是实际上包含其他项目的对象的简化版本,否则这是多余的。 你的代码知道它的发送/接收是什么,所以没有额外的信息。
你的{"recipes": <...>}
对象的值是一个由两个对象组成的数组,其中键"name"
和"ingredients"
。 每当你有这样一个数组时,它就会变得更有意义(并且更紧凑),用一个对象替换它。 根据经验:
如果对象数组中的键可以替换为"key"
和"value"
并且仍然有意义,请使用单个{"key_name": <value>, ...}
对象替换该数组。
同样的规则也适用于你的[{"ingredient": <...>, "quantity": <...>}, ...]
数组:每个对象可以被一个键值对取代并继续制作感。
最终的结果是,信息的表示长度为87个字符(删除了无关的空白),与原始的249个字符相比 - 减少了65%。
当然。 一种方法是:
var cooking = {
"recipes" : [
{
"name":"pizza",
"ingredients" : [
"cheese",
"tomato"
],
"quantities" : [ // Have to be in order of ingredients
"100g",
"200g"
]
}
]
}
要么
var cooking = {
"recipes" : [
{
"name":"pizza",
"ingredients" : [ // Putting ingredient and quantity together
"cheese:100g",
"tomato:200g"
]
}
]
}
由于它们都是比萨饼,你可以删除名称。
var cooking = {
"recipes" : [
{
"ingredients" : [
"cheese:100g",
"tomato:200g"
]
},
{
"ingredients" : [
"ham:100g",
"pineapple:200g"
]
}
]
}
希望这可以为你简化它! Json必须以某种方式编写,以使其对计算机和人类都是最小的和易理解的。
var cooking = {
"recipes" :
[
{
"name":"pizza",
"cheese": "100g"
"tomato": "200g"
}
,
{
"name":"pizza 2",
"ham": "300g"
"pineapple": "300g"
}
]
}
};
链接地址: http://www.djcxy.com/p/3401.html