使用JS读取JSON元素

时间:2011-05-16 20:12:26

标签: javascript json

我从PHP get请求中收到一个JSON对象。它看起来像这样:

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

我需要访问emp_type_id中的项目(在这种情况下为“11”和“10”)。

我可以使用数据[“user_id”]访问user_id,但无法弄清楚如何获取其他项目。我尝试了各种变体:

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

我想最终遍历emp_type_id中的所有项目并将它们添加到JS数组中。

5 个答案:

答案 0 :(得分:2)

使用for in循环

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] );
}

Running JSBIN Example

答案 1 :(得分:1)

Neal的回答会有所帮助,但我认为你还有其他问题。您的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是一个包含两个字段01的对象的数组?

b)emp_type_id包含值1110的两个项目的数组

如果它应该是b)那么你的json就错了。

答案 2 :(得分:1)

data是一个具有两个属性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"];

答案 3 :(得分:0)

试试这个:

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

答案 4 :(得分:0)

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

for(var key in myVar){
    myVar[key];
}