Как я могу получить доступ к содержимому этого JSON? - PullRequest
0 голосов
/ 16 марта 2012
{"EN":[{"EN":"please enter a valid number :"},{"EN":"Please enter a valid weight:"}],"NL":[{"NL":"Vul een geldig nummer: in"},{"NL":"Vul een geldig gewicht: in"}],"DE":[{"DE":"Bitte geben Sie eine gültige Zahl:"},{"DE":"Bitte geben Sie eine gültige Gewicht:"}],"FR":[{"FR":"S'il vous plaît entrer un nombre valide:"},{"FR":"S'il vous pla&#238t entrer un poids valide:"}],"PL":[{"PL":"Proszę wpisać aktualny numer:"},{"PL":"Proszę podać poprawny waga:"}]}

Мне нужны данные "Пожалуйста, введите правильный вес:"

Я пытался alert(json['EN'][1]); // это дает мне предупреждение об объекте объекта

Ответы [ 2 ]

2 голосов
/ 16 марта 2012

Решение

Если ваш объект называется json, то решение будет следующим:

json['EN'][1]['EN']

Объяснение

По json['EN'][1] вы получаетеследующий объект:

{"EN":"Please enter a valid weight:"}

, поэтому остается только получить доступ к значению, связанному с его клавишей "EN".

Ps.Конечно, вы можете получить доступ к свойствам в JavaScript двумя способами, например.json['EN'] или json.EN, но первый предпочтителен.Обозначение в квадратных скобках рассматривается как лучшая практика, оно более гибкое.Подробнее на эту тему: Доступ к свойству JavaScript: точечные обозначения и скобки?

1 голос
/ 16 марта 2012

Вы были почти там. Внешний EN - это массив литералов объекта, а внутренний EN - это свойство объекта. Вы ищете второй элемент массива ([1]) внешнего свойства EN:

Нормальный синтаксис объекта JavaScript с использованием точечных свойств и индексов в скобках: alert(json.EN[1].EN); // please enter a valid weight Альтернативный синтаксис с использованием свойств объекта в квадратных скобках:

alert(json["EN"][0]["EN"]);


// Others...
alert(json.EN[0].EN);
// please enter a valid number

alert(json.NL[0].NL);
// Vul een geldig nummer: in
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...