2016-01-11 3 views
0

Я хочу создать файл JSON следующих данных для создания раскрывающихся меню с использованием кода JavaScript.Как создать вложенный тип данных JSON?

Пользователь сначала выбирает элемент, это ограничит параметры размера. Затем он/она будет использовать размер, и на основе цены выбора будет определено. После выбора всех необходимых элементов будет рассчитана окончательная цена.

item size    price ($) 
A  less than 3  5 
A  greater than 3 4 
B  less than 10  6 
B  between 10 & 20 5 
B  greater than 20 4 

Вот что я написал до сих пор:

items = [ 
    { 
     "item" : "A", 
     "size_1" : "less than 3", 
     "size_2" : "greater than 3", 
     "price_1"  : "5" 
     "price_2"  : "4" 
    }, 
    { 
     "item" : "B", 
     "size_1" : "less than 10", 
     "size_2" : "between 10 & 20", 
     "size_3" : "greater than 20", 
     "price_1"  : "6" 
     "price_2"  : "5" 
     "price_3"  : "4" 
    } 
] 

ли это, как я должен был сделать это? Каков наилучший способ сделать это?

+0

Я думаю, вы хотите что-то более похожее на '[{" item ":" A "," size ":" меньше 3 "," price ": 5}, ...]' и так далее. –

+0

@MikeC, если я хочу создать раскрывающееся меню элементов, будет ли он отображать только опции 'A' &' B? – Ana

+0

Я предполагаю, что все зависит от того, как вы выходите из него. –

ответ

1

Это действительно зависит от вас, как вы хотите смоделировать свои данные. То, как у вас есть, хорошо, но есть преимущества для того, чтобы модель данных каждого элемента выглядела одинаково. Я бы, наверное, сделать следующее:

var items = [ 
    {"item": "A", "size": "less than 3", "price": 5}, 
    {"item": "A", "size": "greater than 3", "price": 4}, 
    {"item": "B", "size": "less than 10", "price": 6}, 
    {"item": "B", "size": "between 10 & 20", "price": 5}, 
    {"item": "B", "size": "greater than 20", "price": 4}, 
]; 

Если вы не нужны детали, чтобы быть список с заказом, вы могли бы сделать это карта, где item, кажется, ключ:

var items = { 
    "A": [ 
    {"size": "less than 3", "price": 5}, 
    {"size": "greater than 3", "price": 4} 
    ], 
    "B": [ 
    {"size": "less than 10", "price": 6}, 
    {"size": "between 10 & 20", "price": 5}, 
    {"size": "greater than 20", "price": 4} 
    ] 
]; 

Etc Вы можете придумать множество способов представления ваших данных. Только вы знаете, что имеет наибольшее значение для вашей реализации.

Смежные вопросы