如何将数据对象添加到JSON对象中

How do I add a data object to a JSON object?

本文关键字:对象 JSON 添加 数据      更新时间:2023-09-26

我想将列表2的数据[]作为子项添加到列表1中。所需输出为列表3。但在我的代码中,我得到了空字符串作为子值。_getJsonObject(id,user)中的api调用带来了列表2。

我的代码如下:

var strList = function (){
    var listItems= "";
    $.ajax({
        url: 'http://localhost:8088/api/v1/ui/performance/custom_link_groups?',
        dataType: 'json',
        async: false,
        success: function(data){
            for (var i = 0; i  < data.data.length; i++){
                data.data[i].children = _getJsonObject(data.data[i].$ID,data.data[i].$userId);
            } 
            listItems = data;
        }
    });
    return listItems;   
}();

function _getJsonObject(id,user){
    var rdata = "";
    $.ajax({
        url: 'http://localhost:8088/api/v1/ui/performance/custom_links?group='+id+'&user='+user,
        dataType: 'json',
        async: false,
        success: function(data){
            rdata = data.data;
        }
    });
    return rdata;
}

列表1

{
"response_code": 200,
"error_code": "",
"error_message": "",
"status": "SUCCESS",
"row_count": 5,
"data": [
    {
        "ID": "84",
        "groupLabel": "Interface Util",
        "isPrivate": "0",
        "userId": "user1"
    },
    {
        "ID": "85",
        "groupLabel": "Hendrick Test Mweb",
        "isPrivate": "0",
        "userId": "user2"
    },
    {
        "ID": "86",
        "groupLabel": "test",
        "isPrivate": "0",
        "userId": "user4"
    },
    {
        "ID": "87",
        "groupLabel": "Interface Util",
        "isPrivate": null,
        "userId": "user3"
    },
    {
        "ID": "88",
        "groupLabel": "testing",
        "isPrivate": "0",
        "userId": "user5"
    }
],
"meta": ""

}

列表2

{
"response_code": 200,
"error_code": "",
"error_message": "",
"status": "SUCCESS",
"row_count": 2,
"data": [
    {
        "ID": "53",
        "attributeId": "2194242",
        "groupId": "85",
        "isSummary": null,
        "label": "DEV-SUPPORT-PC, DEV-SUPPORT-PC : Uptime",
        "rrdGraphGroup": null
    },
    {
        "ID": "54",
        "attributeId": "2255447||2255453",
        "groupId": "85",
        "isSummary": null,
        "label": "DEV-SUPPORT-PC, Intel(R)%2082578DC%20Gigabit%20Network%20Connection%20 : Utilization",
        "rrdGraphGroup": "Utilization"
    }
],
"meta": ""

}

列表3

{
"response_code": 200,
"error_code": "",
"error_message": "",
"status": "SUCCESS",
"row_count": 5,
"data": [
    {
        "ID": "84",
        "groupLabel": "Interface Util",
        "isPrivate": "0",
        "userId": "user1",
        "children": ""
    },
    {
        "ID": "85",
        "groupLabel": "Hendrick Test Mweb",
        "isPrivate": "0",
        "userId": "user2",
        "chlidren": [
                    {
                    "ID": "53",
                    "attributeId": "2194242",
                    "groupId": "85",
                    "isSummary": null,
                    "label": "DEV-SUPPORT-PC, DEV-SUPPORT-PC : Uptime",
                    "rrdGraphGroup": null
                    },
                    {
                    "ID": "54",
                    "attributeId": "2255447||2255453",
                    "groupId": "85",
                    "isSummary": null,
                    "label": "DEV-SUPPORT-PC, Intel(R)%2082578DC%20Gigabit%20Network%20Connection%20 : Utilization",
                    "rrdGraphGroup": "Utilization"
                    }
                    ]
    },
    {
        "ID": "86",
        "groupLabel": "test",
        "isPrivate": "0",
        "userId": "user4",
        "children": ""
    },
    {
        "ID": "87",
        "groupLabel": "Interface Util",
        "isPrivate": null,
        "userId": "user3",
        "children": ""
    },
    {
        "ID": "88",
        "groupLabel": "testing",
        "isPrivate": "0",
        "userId": "user5",
        "children": ""
    }
],
"meta": ""
}
var strList = function (callback){
var listItems= "";
$.ajax({
    url: 'http://localhost:8088/api/v1/ui/performance/custom_link_groups?',
    dataType: 'json',
    async: false,
    success: function(data){
        for (var i = 0; i  < data.data.length; i++){
            _getJsonObject(data.data[i].$ID,data.data[i].$userId,         
             function(data)
             {
               data.data[i].children = data;
             });
            } 
           callback(data);
        }
    });
    return listItems;   
}();

function _getJsonObject(id,user, callback){
    var rdata = "";
    $.ajax({
        url: 'http://localhost:8088/api/v1/ui/performance/custom_links?group='+id+'&user='+user,
        dataType: 'json',
        async: false,
        success: function(data){
           callback(data.data);
        }
    });
    return rdata;
}