简化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

    上一篇: Simplifying JSON structure

    下一篇: How do you add a comment to a json IAM policy?