2015-12-02 34 views
1

我想知道什麼是建築JSON字符串的最好方法?最好的辦法建立一個適當的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 
      } 
     ]   
    } 
} 
+0

除非您在其他地方定義了順序,否則您可能需要一個數組而不是一個對象來列出不同的變體,因此您可以控制它們顯示的順序。除此之外,這個話題過於寬泛,有幾十種方法可以解決這個問題,靈活性(絕對價格,相對價格,相對價格百分比,每變化價格,每個組合的價格......)或多或少。 – jcaron

回答

1

到可能實現的東西像您剛纔提到可以像下面做的最好辦法:

{ 

    "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" 
      } 

     ] 

    } 
    ] 

} 

這樣,每個產品及其變化,你只需要訪問產品陣列中的單個對象並且很容易理解。而且還有很少的建議,使用駱駝套,並避免在第一個字母的關鍵。