чтение элемента JSON с использованием JS - PullRequest
2 голосов
/ 17 мая 2011

Я получаю объект JSON из PHP-запроса get. Это выглядит так:

data == {"user_id":"7","emp_type_id":[{"0":"11","1":"10"}]}

Мне нужно получить доступ к элементам в emp_type_id (в данном случае «11» и «10»).

Я могу нормально получить доступ к user_id, используя data ["user_id"], но не могу понять, как получить другие элементы. Я пробовал варианты:

eti=data["emp_type_id"];
var myVar = eti[0];

Я хочу в конечном итоге просмотреть все элементы в emp_type_id и добавить их в массив JS.

Ответы [ 5 ]

2 голосов
/ 17 мая 2011

используйте для в петле

var data = {"user_id":"7","emp_type_id":[{"0":"11","1":"10"}]};
var eti = data["emp_type_id"];
var myVar = eti[0];
for(var entry in myVar){
  alert(entry + ":\t" + myVar[entry] );
}

Пример выполнения JSBIN

1 голос
/ 17 мая 2011

Ответ Нила поможет, но я думаю, у вас есть другие проблемы.Ваша структура json выглядит неправильно

a) data == {"user_id":"7","emp_type_id":[{"0":"11","1":"10"}]}

должно быть

b) data == {"user_id":"7","emp_type_id":["11","10"]}

То есть на английском языке

a) emp_type_id массив из одного объекта, который имеет два поля 0 и 1?

b) emp_type_id массив из двух элементов со значениями 11 и 10

Если это должно быть б), тогда ваш json неверен.

1 голос
/ 17 мая 2011

данные - это объект, который имеет два свойства: user_id и emp_type_id.emp_type_id - это массив с одним элементом (???), этот элемент является объектом со свойствами 0 и 1.

Существует два способа чтения свойства из объекта:

var prop = data['emp_type_id'];
var prop = data.emp_type_id;

Если у вас «странные» имена свойств, вам придется использовать технику квадратных скобок.

, поэтому

var prop0 = data.emp_type_id[0].0;
var prop1 = data.emp_type_id[0].1;

Меня беспокоит, что «0» и «1»попадет в категорию "странных имен свойств", поэтому вам может потребоваться сделать

var prop0 = data.emp_type_id[0]["0"];
var prop1 = data.emp_type_id[0]["1"];
0 голосов
/ 17 мая 2011
var eti = data.emp_type_id;
var myVar = eti[0];

for(var key in myVar){
    myVar[key];
}
0 голосов
/ 17 мая 2011

Попробуйте это:

var eti = data.emp_type_id;
var myVar = eti[0];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...