2015-11-02 2 views
-1

У меня есть этот JSON ДАННЫЕ:печати Данные из JSON с JQuery

{ 
    "lang": [ 
     { 
      "id": "007", 
      "translations": { 
       "english": "aaaaaaa", 
       "chinese": "bbbbbbb" 
      } 
     }, 
     { 
      "id": "009", 
      "translations": { 
       "english": "zzzzzz", 
       "chinese": "vvvvvv" 
      } 
     } 
    ] 
} 

и я ищу, чтобы напечатать английский текст.

Так что я попытался так:

$.getJSON('json/lang.json', function(data) { 
    $('#title').html(data['lang']['007']['translations'].english); 
}); 

Но он вернулся мне эту ошибку:

TypeError: undefined is not an object (evaluating 'data['lang'].id['007']') 

Любая помощь?

+0

'console.log (данные)', и вы увидите точную структуру, которую вы имеете дело с. –

ответ

0

007' is not a property name, it's the value of data.lang.id`. Чего вы хотите:

$("#title").html(data.lang.translations.english); 

Кроме того, когда имена свойств литералов, вы можете использовать . обозначения; [] обычно используется, когда имена свойств являются переменными (или другими выражениями), или вы обращаетесь к элементам массива, или когда имя свойства не является допустимым идентификатором (например, 007 свойств в коде ниже).

Вот структура объекта, который будет работать с кодом Вы писали:

{ 
    "lang": { 
     "007": { 
      "translations": { 
       "english": "aaaaaaa", 
       "chinese": "bbbbbbb" 
      } 
     }, 
     "009": { 
      "translations": { 
       "english": "zzzzzz", 
       "chinese": "vvvvvv" 
      } 
     } 
    } 
} 
+0

Конечно, но как это сделать, если в моем новом примере json содержит 2 элемента? – roberto

+0

Возможно, вы можете предложить мне новую структуру сына. – roberto

+0

Ваш измененный JSON недействителен. Вы не можете поместить два элемента после 'lang:', не помещая их в массив. – Barmar

0

Внутренний объект lang не имеет '007' свойство - он имеет свойство id, который содержит значение '007'. Вы хотите:

$('#title').html(data['lang']['translations'].english); 
+0

Но если мой сын вырастет ...? Как в моем новом примере? – roberto

+0

Возможно, вы можете предложить мне новую структуру сына. – roberto

+1

Ваш объект недействителен, если он содержит ключи с одинаковым именем – tymeJV

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