Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中解析嵌套JSON中的元素?_Javascript_Jquery_Json_Xmlhttprequest_Jsonparser - Fatal编程技术网

如何在javascript中解析嵌套JSON中的元素?

如何在javascript中解析嵌套JSON中的元素?,javascript,jquery,json,xmlhttprequest,jsonparser,Javascript,Jquery,Json,Xmlhttprequest,Jsonparser,在向rest api发送GET请求后,我有以下json作为responseText返回: { "ehrs": [ { "uid": "11111111-1111-1111-1111-111111111111", "dateCreated": "2017-09-21 04:36:47", "subjectUid": "11111111-1111-1111-1111-111111111111",

在向rest api发送GET请求后,我有以下json作为responseText返回:

{
    "ehrs": [
        {
            "uid": "11111111-1111-1111-1111-111111111111",
            "dateCreated": "2017-09-21 04:36:47",
            "subjectUid": "11111111-1111-1111-1111-111111111111",
            "systemId": "CABOLABS_EHR_SERVER",
            "organizationUid": "123456"
        },
        {
            "uid": "22222222-1111-1111-1111-111111111111",
            "dateCreated": "2017-09-21 04:36:47",
            "subjectUid": "22222222-1111-1111-1111-111111111111",
            "systemId": "CABOLABS_EHR_SERVER",
            "organizationUid": "123456"
        },
        {
            "uid": "33333333-1111-1111-1111-111111111111",
            "dateCreated": "2017-09-21 04:36:48",
            "subjectUid": "33333333-1111-1111-1111-111111111111",
            "systemId": "CABOLABS_EHR_SERVER",
            "organizationUid": "123456"
        },
        {
            "uid": "44444444-1111-1111-1111-111111111111",
            "dateCreated": "2017-09-21 04:36:48",
            "subjectUid": "44444444-1111-1111-1111-111111111111",
            "systemId": "CABOLABS_EHR_SERVER",
            "organizationUid": "123456"
        },
        {
            "uid": "55555555-1111-1111-1111-111111111111",
            "dateCreated": "2017-09-21 04:36:48",
            "subjectUid": "55555555-1111-1111-1111-111111111111",
            "systemId": "CABOLABS_EHR_SERVER",
            "organizationUid": "123456"
        },
        {
            "uid": "97fecfa9-d51c-440f-93eb-cb8bbabc5cdc",
            "dateCreated": "2017-09-27 22:53:55",
            "subjectUid": "ef70c3bf-8aba-4f4b-83b7-097f2aff60f6",
            "systemId": "CABOLABS_EHR_SERVER",
            "organizationUid": "123456"
        },
        {
            "uid": "4e363a7c-0b25-405c-93d8-1361f4775ccd",
            "dateCreated": "2017-10-10 06:08:58",
            "subjectUid": "228084fb-10d8-4441-8683-aad526e2c5fd",
            "systemId": "CABOLABS_EHR_SERVER",
            "organizationUid": "123456"
        },
        {
            "uid": "3c6b8a98-1488-427b-8251-5bebad35afda",
            "dateCreated": "2017-10-10 21:03:44",
            "subjectUid": "3dd3a7b1-b642-4e9b-b12a-4fcd10af6e4f",
            "systemId": "CABOLABS_EHR_SERVER",
            "organizationUid": "123456"
        }
    ],
    "pagination": {
        "max": 10,
        "offset": 0,
        "nextOffset": 10,
        "prevOffset": 0
    },
    "timing": "0 ms"
}
我只想从这个json的所有“ehrs”元素中获取“uid”和“dateCreated”元素,然后以适当的方式显示它们,同时显示属性名及其值。我尝试了以下代码:

var ehrjson = (this.responseText);
var ehrobj = JSON.parse(ehrjson);
document.getElementById("ehrlist").innerHTML = ehrobj.ehrs.uid+"    ----     "+ehrobj.ehrs.dateCreated+"\n";
但它将[undefined]---[undefined]显示为html输出。
我也有一种感觉,我的代码是错误的,但不知道该怎么办。如何解决这个问题?

ehrobj=JSON.parse(ehrjson)
之后,您将获得一个具有
ehrs
属性的对象,该属性是一个数组

只能访问数组各个元素的属性
uid
dateCreated

因此,您可以(1)显示单个元素的属性
uid
dateCreated

ehrobj.ehrs[0].uid+" "+ehrobj.ehrs[0].dateCreated
或者(2)您可以将它们全部连接起来

ehrobj.ehrs.map(e => e.uid + " " + e.dateCreated).join("\n")

ehrobj=JSON.parse(ehrjson)
之后,您将获得一个具有
ehrs
属性的对象,该属性是一个数组

只能访问数组各个元素的属性
uid
dateCreated

因此,您可以(1)显示单个元素的属性
uid
dateCreated

ehrobj.ehrs[0].uid+" "+ehrobj.ehrs[0].dateCreated
或者(2)您可以将它们全部连接起来

ehrobj.ehrs.map(e => e.uid + " " + e.dateCreated).join("\n")

这里的问题不是json解析。您必须访问ehrobj.ehrs的每个数组元素,并像在这个代码段中那样循环它们

//ehrobj作为js对象运行此代码段
var ehrobj={
“ehrs”:[
{
“uid”:“11111111-1111-1111-1111-111111111”,
“创建日期”:“2017-09-21 04:36:47”,
“主体ID”:“11111111-1111-1111-1111-1111-111111111”,
“系统ID”:“CABOLABS\u EHR\u服务器”,
“组织UID”:“123456”
},
{
“uid”:“2222222-1111-1111-1111-111111111”,
“创建日期”:“2017-09-21 04:36:47”,
“主观性”:“2222222-1111-1111-1111-111111111”,
“系统ID”:“CABOLABS\u EHR\u服务器”,
“组织UID”:“123456”
},
{
“uid”:“33333333-1111-1111-1111-111111”,
“创建日期”:“2017-09-21 04:36:48”,
“主观性”:“33333333-1111-1111-1111-111111”,
“系统ID”:“CABOLABS\u EHR\u服务器”,
“组织UID”:“123456”
},
{
“uid”:“4444-1111-1111-111111111”,
“创建日期”:“2017-09-21 04:36:48”,
“主体ID”:“4444-1111-1111-1111-111111”,
“系统ID”:“CABOLABS\u EHR\u服务器”,
“组织UID”:“123456”
},
{
“uid”:“555555-1111-1111-111111111”,
“创建日期”:“2017-09-21 04:36:48”,
“主体ID”:“555555-1111-1111-1111-111111111”,
“系统ID”:“CABOLABS\u EHR\u服务器”,
“组织UID”:“123456”
},
{
“uid”:“97fecfa9-d51c-440f-93eb-CB8BBAC5CDC”,
“创建日期”:“2017-09-27 22:53:55”,
“主体ID”:“ef70c3bf-8aba-4f4b-83b7-097f2aff60f6”,
“系统ID”:“CABOLABS\u EHR\u服务器”,
“组织UID”:“123456”
},
{
“uid”:“4e363a7c-0b25-405c-93d8-1361f4775ccd”,
“创建日期”:“2017-10-10 06:08:58”,
“主体ID”:“228084fb-10d8-4441-8683-aad526e2c5fd”,
“系统ID”:“CABOLABS\u EHR\u服务器”,
“组织UID”:“123456”
},
{
“uid”:“3c6b8a98-1488-427b-8251-5bebad35afda”,
“创建日期”:“2017-10-10 21:03:44”,
“主体ID”:“3dd3a7b1-b642-4e9b-b12a-4fcd10af6e4f”,
“系统ID”:“CABOLABS\u EHR\u服务器”,
“组织UID”:“123456”
}
],
“分页”:{
“最大”:10,
“偏移量”:0,
“nextofset”:10,
“prevOffset”:0
},
“定时”:“0毫秒”
};
ehrobj.ehrs.forEach(函数(ehr){
document.getElementById(“ehrlist”).innerHTML+=ehr.uid+“----”+ehr.dateCreated+“\n”;
});

您的json解析不是这里的问题。您必须访问ehrobj.ehrs的每个数组元素,并像在这个代码段中那样循环它们

//ehrobj作为js对象运行此代码段
var ehrobj={
“ehrs”:[
{
“uid”:“11111111-1111-1111-1111-111111111”,
“创建日期”:“2017-09-21 04:36:47”,
“主体ID”:“11111111-1111-1111-1111-1111-111111111”,
“系统ID”:“CABOLABS\u EHR\u服务器”,
“组织UID”:“123456”
},
{
“uid”:“2222222-1111-1111-1111-111111111”,
“创建日期”:“2017-09-21 04:36:47”,
“主观性”:“2222222-1111-1111-1111-111111111”,
“系统ID”:“CABOLABS\u EHR\u服务器”,
“组织UID”:“123456”
},
{
“uid”:“33333333-1111-1111-1111-111111”,
“创建日期”:“2017-09-21 04:36:48”,
“主观性”:“33333333-1111-1111-1111-111111”,
“系统ID”:“CABOLABS\u EHR\u服务器”,
“组织UID”:“123456”
},
{
“uid”:“4444-1111-1111-111111111”,
“创建日期”:“2017-09-21 04:36:48”,
“主体ID”:“4444-1111-1111-1111-111111”,
“系统ID”:“CABOLABS\u EHR\u服务器”,
“组织UID”:“123456”
},
{
“uid”:“555555-1111-1111-111111111”,
“创建日期”:“2017-09-21 04:36:48”,
“主体ID”:“555555-1111-1111-1111-111111111”,
“系统ID”:“CABOLABS\u EHR\u服务器”,
“组织UID”:“123456”
},
{
“uid”:“97fecfa9-d51c-440f-93eb-CB8BBAC5CDC”,
“创建日期”:“2017-09-27 22:53:55”,
“主体ID”:“ef70c3bf-8aba-4f4b-83b7-097f2aff60f6”,
“系统ID”:“CABOLABS\u EHR\u服务器”,
“组织UID”:“123456”
},
{
“uid”:“4e363a7c-0b25-405c-93d8-1361f4775ccd”,
“创建日期”:“2017-10-10 06:08:58”,
“主体ID”:“228084fb-10d8-4441-8683-aad526e2c5fd”,
“系统ID”:“CABOLABS\u EHR\u服务器”,
“组织UID”:“123456”
},
{
“uid”:“3c6b8a98-1488-427b-8251-5bebad35afda”,
“创建日期”:“2017-10-10 21:03:44”,
“主体ID”:“3dd3a7b1-b642-4e9b-b12a-4fcd10af6e4f”,
“系统ID”:“CABOLABS\u EHR\u服务器”,
“组织UID”:“123456”
}
],
“分页”:{
“最大”:10,
“偏移量”:0,
“nextofset”:10,
“prevOffset”:0
},
“定时”:“0毫秒”
};
ehrobj.ehrs.forEach(傅