JSON到jquery中的关联数组

时间:2013-03-13 08:02:41

标签: jquery arrays json

我在这里阅读更多内容,但我没有找到问题的答案 我的问题:

我有(来自php通过ajax返回json字符串)

str = '[{"id":"159","pavadinimas":"Building B","_id":"200",.................}]';

这是JSON字符串,我做 obj = $.parseJSON(str); 我可以像alert(obj[0]._id)那样获得任何价值,我得到200。

但我如何从json获取关联数组,如:

dataArray = [
"id":"159",
"pavadinimas":"Building B",
"_id":"200",
...
]

我希望得到像这样的价值200

val = dataArray['_id'];

5 个答案:

答案 0 :(得分:6)

javascript中没有关联数组概念,只有对象。

var arr = $.parseJSON(str);
var obj = arr[0];
var _id = obj['_id']

答案 1 :(得分:4)

Javascript没有关联数组。您将不得不使用使用大括号{}代替的对象。

dataObj = {
    "id":"159",
    "pavadinimas":"Building B",
    "_id":"200",
    ...
}

console.log( dataobj.id );
console.log( dataobj['id'] );

两者都是一样的。

因此,对于您的示例,您可以按照期望关联数组的方式访问对象。

答案 2 :(得分:1)

JavaScript中的任何对象都是关联数组

e.g。你可以做到

dataArray = obj[0];
for(var prop in dataArray) {
   if(dataArray.hasOwnProperty(prop)){
      console.log(dataArray[prop];
   }
}

将打印每个对象的值到控制台。在你的情况下,实际上不需要调用hasOwnProperty,因为它是由于它的原型而得到的对象,但通常建议比迭代对象的属性以检查它是属于它自己的对象还是属于某个对象的对象原型链

对于几乎(1)对象的任何属性,有两种语义上等价的方式来访问该值

obj.propertyName
obj["propertyName"]

将产生相同的值。

(1) 当属性名称不是有效标识符时。你可以做到

obj["property name"]

但不能做

obj.property name

换句话说,属性名称不必是有效的标识符。

答案 3 :(得分:0)

使用.map()

for (var i in elements)
{
    elements[i] = $.map(elements[i],function(v)
    {
        return v;
    });
}     

答案 4 :(得分:0)

可能你想要这样的东西:

 var idArray = [];
 var buildArray = [];
 var _idArray = [];
 var data = [{
              "id": 159,
              "pavadinimas": "Building A",
              "_id": 100
            }, {
              "id": 160,
              "pavadinimas": "Building B",
              "_id": 200
            }, {
              "id": 161,
              "pavadinimas": "Building C",
              "_id": 400
           }];

 $.each(data, function (i, item) {
    idArray.push(item.id);
    buildArray.push(item.pavadinimas);
    _idArray.push(item._id);
 });

 console.log(idArray[0]+' : '+buildArray[0]+ ' : ' +_idArray[0]);