如何使用javascript访问对象数组中的对象的属性?

时间:2015-07-13 12:09:08

标签: javascript

以下是来自ajax调用的responseText的一个元素:

[{
    "hitcount": {
        "0": "3351"
    },
    "page": {
        "0": "1"
    },
    "title": {
        "0": "Hypoxia upregulates Rab11-family interacting protein 4 through HIF-1\u03b1 to promote the metastasis of hepatocellular carcinoma."
    },
    "authorString": {
        "0": "Hu F, Deng X, Yang X, Jin H, Gu D, Lv X, Wang C, Zhang Y, Huo X, Shen Q, Luo Q, Zhao F, Ge T, Zhao F, Chu W, Shu H, Yao M, Fan J, Qin W."
    },
    "pubYear": {
        "0": "2015"
    },
    "journalVolume": "",
    "issue": "",
    "pageInfo": "",
    "pmid": {
        "0": "25745995"
    },
    "abstract_": {
        "0": "Hypoxic microenvironment is a powerful driving force for the invasion and metastasis of hepatocellular carcinoma (HCC). Hypoxia-inducible factor 1\u03b1 (HIF-1\u03b1), as a crucial regulator of transcriptional responses to hypoxia, induces the expression of multiple target genes involved in different steps of HCC metastatic process. It is critical to find target genes associated with metastasis under hypoxia for shedding new light on molecular mechanism of HCC metastasis. In this study, we uncovered that hypoxia could induce the upregulation of Rab11-family interacting protein 4 (Rab11-FIP4) and activation of Rab11-FIP4 promoter by HIF-1\u03b1. The overexpression of Rab11-FIP4 significantly enhanced the mobility and invasiveness of HCC cells in vitro, also contributed to distant lung metastasis in vivo, whereas silencing of Rab11-FIP4 decreased the ability of migration and invasion in HCC cells in vitro and suppressed lung metastasis in vivo. Rab11-FIP4 facilitated HCC metastasis through the phosphorylation of PRAS40, which was regulated by mTOR. Furthermore, the expression level of Rab11-FIP4 was significantly increased in HCC tissues and high expression of Rab11-FIP4 was closely correlated with vascular invasion and poor prognosis in HCC patients. A markedly positive correlation between the expression of Rab11-FIP4 and HIF-1\u03b1 was observed in HCC tissues and combination of Rab11-FIP4 and HIF-1\u03b1 was a more valuable predictor of poor prognosis for HCC patients. In conclusion, Rab11-FIP4 is a target gene of HIF-1\u03b1 and has a pro-metastatic role in HCC, suggesting that Rab11-FIP4 may be a promising candidate target for HCC treatment.Oncogene advance online publication, 9 March 2015; doi:10.1038\/onc.2015.49."
    },
    "journalTitle": {
        "0": "Oncogene"
    },
    "pdfURL": "",
    "arrayOfPersons": [{
        "firstname": "dean",
        "lastname": "wood",
        "avatar_path": null,
        "username": "deanwood"
    }, {
        "firstname": "dean",
        "lastname": "wood",
        "avatar_path": null,
        "username": "deanwood"
    }, {
        "firstname": "Anne",
        "lastname": "Smith",
        "avatar_path": null,
        "username": "annesmith"
    }]
}]

我将字符串转换为javascript对象:

 var json_obj = JSON.parse(xmlhttp.responseText);

我试图从这个元素(位于元素的末尾)访问对象数组的属性但是没有成功。我没有成功尝试以下内容:

 json_obj[i].arrayOfPersons[i].firstname;

请提出建议吗?

3 个答案:

答案 0 :(得分:0)

首先:在最后修复你的JSON,它缺少一个]。 除此之外,你可能想要遍历所有可能的firstNames。 试试这个:

for (var i = 0; i < json_obj.length; i++) {
    for (var j = 0; j < json_obj[i].arrayOfPersons.length; j++) {
        var result = json_obj[i].arrayOfPersons[j];
        console.log(result.firstname);
    }
}

答案 1 :(得分:0)

获取arrayOfPersons的最后一个人:

&#13;
&#13;
 var json = '[{"hitcount":{"0":"3351"},"page":{"0":"1"},"title":{"0":"Hypoxia upregulates Rab11-family interacting protein 4 through HIF-1\u03b1 to promote the metastasis of hepatocellular carcinoma."},"authorString":{"0":"Hu F, Deng X, Yang X, Jin H, Gu D, Lv X, Wang C, Zhang Y, Huo X, Shen Q, Luo Q, Zhao F, Ge T, Zhao F, Chu W, Shu H, Yao M, Fan J, Qin W."},"pubYear":{"0":"2015"},"journalVolume":"","issue":"","pageInfo":"","pmid":{"0":"25745995"},"abstract_":{"0":"Hypoxic microenvironment is a powerful driving force for the invasion and metastasis of hepatocellular carcinoma (HCC). Hypoxia-inducible factor 1\u03b1 (HIF-1\u03b1), as a crucial regulator of transcriptional responses to hypoxia, induces the expression of multiple target genes involved in different steps of HCC metastatic process. It is critical to find target genes associated with metastasis under hypoxia for shedding new light on molecular mechanism of HCC metastasis. In this study, we uncovered that hypoxia could induce the upregulation of Rab11-family interacting protein 4 (Rab11-FIP4) and activation of Rab11-FIP4 promoter by HIF-1\u03b1. The overexpression of Rab11-FIP4 significantly enhanced the mobility and invasiveness of HCC cells in vitro, also contributed to distant lung metastasis in vivo, whereas silencing of Rab11-FIP4 decreased the ability of migration and invasion in HCC cells in vitro and suppressed lung metastasis in vivo. Rab11-FIP4 facilitated HCC metastasis through the phosphorylation of PRAS40, which was regulated by mTOR. Furthermore, the expression level of Rab11-FIP4 was significantly increased in HCC tissues and high expression of Rab11-FIP4 was closely correlated with vascular invasion and poor prognosis in HCC patients. A markedly positive correlation between the expression of Rab11-FIP4 and HIF-1\u03b1 was observed in HCC tissues and combination of Rab11-FIP4 and HIF-1\u03b1 was a more valuable predictor of poor prognosis for HCC patients. In conclusion, Rab11-FIP4 is a target gene of HIF-1\u03b1 and has a pro-metastatic role in HCC, suggesting that Rab11-FIP4 may be a promising candidate target for HCC treatment.Oncogene advance online publication, 9 March 2015; doi:10.1038\/onc.2015.49."},"journalTitle":{"0":"Oncogene"},"pdfURL":"","arrayOfPersons":[{"firstname":"dean","lastname":"wood","avatar_path":null,"username":"deanwood"},{"firstname":"dean","lastname":"wood","avatar_path":null,"username":"deanwood"},{"firstname":"Anne","lastname":"Smith","avatar_path":null,"username":"annesmith"}]}]';

function show() {
  var json_obj = JSON.parse(json);
  result = document.getElementById("result");
  lastPerson = json_obj[0].arrayOfPersons[json_obj[0].arrayOfPersons.length - 1];
  result.innerHTML = lastPerson.firstname + " " +lastPerson.lastname;
}
&#13;
Last person of arrayOfPersons:
<div id="result"></div>
<button onclick="show();">Show</button>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

如果xmlhttp.responseText的返回值类型是json,则您不需要解析它。您可以这样使用:

var json_obj = xmlhttp.responseText;
json_obj[i].arrayOfPersons[i].firstname