Jun*_*unM 2 javascript arrays json
我想将 JSON 响应转换为关联数组,但看起来我没能做对。
这是我的 JSON 示例响应:
{
"response":[
{
"id":100,
"certificate":{
"id":1,
"title":"Lorem ipsum dolor sit amet, consectetur adipiscing elit."
},
"created_at":"2013-12-02T15:20:08.233Z"
},
{
"id":101,
"certificate":{
"id":2,
"title":"Aenean facilisis, nisl vitae pulvinar varius."
},
"created_at":"2013-12-02T15:20:08.240Z"
}
],
"count":2
}
Run Code Online (Sandbox Code Playgroud)
这是我迄今为止尝试过的:
var len = obj.response.length;
var rData = [];
var gcData = [];
for(var i = 0; i < len; i++){
rData[i] = $.map(obj.response[i], function(value, index) {
if(typeof value=="object"){
gcData = $.map(value, function(value1, index) {
return [value1];
});
return gcData;
}else{
return [value];
}
});
}
Run Code Online (Sandbox Code Playgroud)
我的预期输出:
rData = [
100 : [
id: ["100"],
certificate: [
id: ["1"],
title: ["Lorem ipsum dolor sit amet, consectetur adipiscing elit."]
],
created_at: ["2013-12-02T15:20:08.240Z"]
]
101 : [
id: ["101"],
certificate: [
id: ["2"],
title: ["Aenean facilisis, nisl vitae pulvinar varius."]
],
created_at: ["2013-12-02T15:20:08.240Z"]
]
]
Run Code Online (Sandbox Code Playgroud)
请帮忙。谢谢。
我只想按预期输出中的键对其进行分组
看来您要创建id -> object地图。为此,您只需遍历数组,将id每个对象的属性作为属性名称,并将对象(数组的元素)分配给映射的该属性。
例子:
var map = {};
var response = obj.response;
for (var i = 0, l = response.length; i < l; i++) {
map[response[i].id] = response[i];
}
console.log(map);
Run Code Online (Sandbox Code Playgroud)
数组中的每个对象都已经在你想要的结构中。输出是
{
"100": {
"id": 100,
"certificate": {
"id": 1,
"title": "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
},
"created_at": "2013-12-02T15:20:08.233Z"
},
"101": {
"id": 101,
"certificate": {
"id": 2,
"title": "Aenean facilisis, nisl vitae pulvinar varius."
},
"created_at": "2013-12-02T15:20:08.240Z"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18677 次 |
| 最近记录: |