我希望将一个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
}
这是目前我所尝试的内容:
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];
}
});
}
My expected output:
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"]
]
]
Please help. Thanks.
rData = [ 100 : ..
的部分已经是无效的了。你为什么要把 每个值 都放进一个数组里呢?这样访问数据会变得更加困难。JavaScript 没有关联数组,但你可以用对象作为键 -> 值
映射。现有的数据结构有什么问题吗,也就是 JSON 的结构方式?你只是想创建一个映射id -> object
吗?请解释一下你实际想要解决的问题。 - Felix Klingobj.response
是一个JavaScript数组。 您如何获取数据(即作为JSON)与您要尝试做的事情无关。 - Felix Klingobj.response
而不必将其转换为数组。我会在我的端上进行一些实验,并稍后接受答案。感谢您的帮助。 - JunMid -> object
映射,则直接使用obj.response
当然是最简单的方法。 - Felix Kling