Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
构建正确的json字符串的最佳方法_Json - Fatal编程技术网

构建正确的json字符串的最佳方法

构建正确的json字符串的最佳方法,json,Json,我想知道构建json字符串的最佳方法是什么 我有一个产品可能有不同的变化,每个变化可能有不同的价格增加或没有: color: black, +$5 color: white, +$0 size: L, +$1 size: XL, +$4 big bada boom: No, $-4 and so fourth 假设任何给定的属性(颜色、大小等)没有在任何地方定义,需要动态解析,您建议使用什么结构 你认为这样做有意义吗 { "variations": { "Colo

我想知道构建json字符串的最佳方法是什么

我有一个产品可能有不同的变化,每个变化可能有不同的价格增加或没有:

color: black, +$5 
color: white, +$0 
size: L, +$1 
size: XL, +$4
big bada boom: No, $-4
and so fourth
假设任何给定的属性(颜色、大小等)没有在任何地方定义,需要动态解析,您建议使用什么结构

你认为这样做有意义吗

{
    "variations": {
        "Color": [
            {
                "id": "1",
                "name_definition": "black",
                "price": 1
            },
            {
                "id": "2",
                "name_definition": "white",
                "price": 0
            },
            {
                "id": "3",
                "name_definition": "Green",
                "price": 5.95
            }
        ],

        "Size": [
            {
                "id": "1",
                "name_definition": "30",
                "price": 21
            },
            {
                "id": "2",
                "name_definition": "15",
                "price": 4
            },
            {
                "id": "3",
                "name_definition": "10",
                "price": 0
            }
        ]        
    }
}

要实现您提到的目标,最好的方法如下:

{

    "products": [
    {
        "id": 1,
        "defaultColor": "examplecolor",
        "defaultPrice": 5,
        "currencySelected": "$",
        "variations": [
            {
                "variationType": "Color",
                "variationItem": "Black",
                "variationPrice": 1,
                "variationEffectType": "Add"
            }, 
            {
                "variationType": "Size",
                "variationItem": 30,
                "variationPrice": 21,
                "variationEffectType": "Add"
            }

        ]

    }
   ]

}

这样,对于每个产品及其变体,您只需访问products数组中的单个对象,也很容易理解。此外,还有几条建议,请使用驼峰式大小写,并避免在键的第一个字母中使用大写字母。

除非您在别处定义了顺序,您可能希望使用数组而不是对象来列出不同的变体,以便可以控制它们的显示顺序。除此之外,该主题过于宽泛,有几十种方法可以实现这一点,或多或少都有灵活性(绝对价格、相对价格、百分比相对价格、每种变化的价格、每种组合的价格……)。