JavaScript-如何以这种方式格式化此JSON

JavaScript - How to format this JSON this way?

本文关键字:方式 格式化 JSON JavaScript-      更新时间:2023-09-26

我想知道如何格式化以下JSON:

{  
    "names":{  
        "Nancy":[  
        ],
        "Charles":[  
        ]
    }
}

至以下一个:

{  
    "names":{  
        0: Object
         "Nancy":[  
        ],
        1: Object
        "Charles":[  
        ]
    }
}

到目前为止,我的代码是:

for(var i=0; i < this.data.length; i++){  
    storeInfo[i] = this.data[i];
    var row = storeInfo[i];
    result.names[row.info] = result.names[row.info] || []; 
    result.names[row.info];
}

我愿意以这种方式检索数据names[i],这种方式我需要转换它。

我认为为了达到想要的结果,我们需要在数组中有一个集合。到最后,我们将在一个数组中拥有多个集合。如果你有更好的方法,请提供建议。

假设namesdata:中的唯一密钥

var data = {
    "names":{
        "Nancy" : [1,2,3],
        "Charles" : [4,5,6],
        "Dingo" : [7, 8, 9]
    }
}
var i = 0;
for(var name in data.names)
{
    data.names[i] = {};
    data.names[i][name] = data.names[name];
    delete data.names[name];
    ++i;
}

在此结束时,data将等于:

data = {
    "names" : {
        "0" : { "Nancy" : [1,2,3] },
        "1" : { "Charles" : [4,5,6] },
        "2" : { "Dingo" : [7, 8, 9] }
    }
}

假设

data = {  
    "names":{  
        "Nancy":[  
        ],
        "Charles":[  
        ]
    }
}

你是说你想要这个?

{  
    "names":{  
        "0": { "Nancy":[  
        ] },
        "1": { "Charles":[  
        ] }
    }
}

因此:

var result = { "names" : {} }
var keys = Object.keys(data.names);
for(var i=0; i < keys.length; i++){  
    obj = {};
    obj[keys[i]] = data.names[keys[i]];
    result.names[i] = obj; 
}

虽然这里的其他人已经回答了,但如果只是打印obj中的值,则不需要更改对象。也许这会有所帮助,

var data ={  
    "names":{  
        "Nancy":[1,2],
        "Charles":[ 3,4 ]
    }
}
for(var obj in data.names){
    console.log(data.names[obj]);
}

小提琴---https://jsfiddle.net/2dkn9ehn/