简单的json数组结构

时间:2012-05-24 12:36:33

标签: javascript json

我知道下一个问题看起来似乎很愚蠢,但无论如何我都会这样做:)

我有这个结构:

{
      "name": "Erjet Malaj",
      "first_name": "Erjet",
      "work": [
        {
          "employer": {
            "id": "110108059015688",
            "name": "Art of Living Foundation"
          },
          "position": {
            "id": "137081429661437",
            "name": "Volunteer"
          },
          "start_date": "0000-00",
          "end_date": "0000-00"
        },
        {

我像这样检索response.data [i] .first_name,我该如何检索工作ID?

4 个答案:

答案 0 :(得分:2)

work是一个数组。你需要循环它

var work = response.data[i].work,
    worklen = work.length,
    j, workdetails;

for(j = 0; j < worklen; j++){

    //simplify for readability
    workdetails = work[j];

    //where prop is "employer" or "position"
    workdetails[prop].id 
    workdetails[prop].name
}

答案 1 :(得分:0)

你试过response.data[i].work.position.id吗?

第二个想法,work是一个对象数组,所以它的访问方式如下:

response.data[i].work[0].position.id

答案 2 :(得分:0)

假设您的意思是给定作品的雇主ID

这应该得到雇主的身份

response.data[i].work[j].employer.id

您也可以这样做(取决于偏好)

response.data[i].work[j]['employer'].id

在这种情况下,工作位置是j(用作数组索引器),将j替换为t,将第一个替换为tget,将1替换为第二个等等。

答案 3 :(得分:0)

id数组中每个记录的雇主和职位都有work。如果要循环访问某人的工作条目并收集这些ID,请使用:

var person = response.data[i];
var work = person.work;

for(var j = 0; j < work.length; ++j) {
    var work_entry = work[j];
    console.log(work_entry.employer.id);
    console.log(work_entry.position.id); 
}

work数组中的条目从0开始以数字方式访问。条目本身是对象,您可以使用obj_name.property_nameobj_name["property_name"]

访问其属性