2013-09-14 2 views
0

Я работаю над созданием документа JSON по своим данным. Ниже приведено единственное значение (v), которое содержит site-id, price-score и confidence-score.Как я могу представить список данных в формате JSON?

{ 
    "v" : { 
    "site-id" : 0, 
    "price-score" : 0.5, 
    "confidence-score" : 0.2 
    } 
} 

Теперь я хочу добавить список категорий в вышеупомянутый документ JSON. Как я буду иметь несколько категорий для одного значения (v), поэтому я придумал ниже JSON document-

{ 
    "v" : { 
    "site-id" : 0, 
    "price-score" : 0.5, 
    "confidence-score" : 0.2, 
    "categories": [ 
      { 
      "category-id": "123", 
      "price-score": "0.5", 
      "confidence-score": "0.2" 
      }, 
      { 
      "category-id": "321", 
      "price-score": "0.2", 
      "confidence-score": "0.4" 
      } 
    ] 
    } 
} 

Может кто-нибудь посмотрите и дайте мне знать, если она хорошо выглядит так, как я добавил список категорий в вышеупомянутом документе JSON? Или есть лучший способ сделать то же самое? Поскольку я не хочу начинать с проблем, когда я работаю над сериализацией и десериализацией вышеуказанного документа JSON.

+1

Кажется правильным для меня – superbob

+0

Возможно, вы захотите сделать 'categories' объектом, ключи которого являются идентификатором, а не массивом. Это позволяет легко найти конкретный идентификатор без цикла. Но кроме этого, он выглядит находкой. – Barmar

+0

@Barmar: Можете ли вы привести мне пример, который оправдывает это? Это заставит меня понять намного лучше. Благодарю. –

ответ

0

Я рекомендую:

{ 
    "v" : { 
     "site-id" : 0, 
     "price-score" : 0.5, 
     "confidence-score" : 0.2, 
     "categories": { 
      "123" : { 
       "price-score": "0.5", 
       "confidence-score": "0.2" 
      }, 
      "321" : { 
       "price-score": "0.2", 
       "confidence-score": "0.4" 
      } 
     } 
    } 
} 

Таким образом, вы можете легко использовать:

json.v.categories[id] 

, чтобы получить информацию о конкретной категории, вместо того, чтобы написать:

var the_category; 
for (var i = 0; i < json.v.categories.length; i++) { 
    if (json.v.categories[i]['category-id'] == id) { 
     the_category = json.v.categories[i]; 
     break; 
    } 
} 

Другое предложение: используйте _, а не - в ключах (или camelCase если вы предпочитаете), так как дефис запрещает вам использовать нотацию для доступа к элементам . (обратите внимание, что мне пришлось написать ['category-id'] выше, а не .category-id.

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