如何浏览javascript对象

时间:2013-01-08 09:37:48

标签: javascript jquery html json

我是jQuery的新手。以下是包含json字典的data变量。

{
   "user":null, 
   "currency":"EUR",
   "balance":0,
   "translist": [ 
       { "trans1":"something","trans2":"something2" }
   ]
}

我的jQuery方法从Rest json/Javascript object调用

收到GET
success: function (data){    
        for(x in data) {
            console.log(x + ':   ' + data[x]);
        }       
    });

是否有任何库可以帮助解析/遍历此json对象并获取某种对象列表?我想检查一些键及其各自的值。问题是我不需要列表中的所有键和值,并且一些值可能为null,这使我无法应用我使用SO找到的一些解决方案。

或者通常在成功函数中直接开始打印HTML更常见吗?

编辑:如果它是java,例如它将是一个Map,我将使用迭代器遍历并查看/分析地图值,并使用我想要的值创建一些数组列表。在jQuery中有什么相同的东西?

2 个答案:

答案 0 :(得分:3)

  

如果它是java,例如它将是一个Map,我会使用   迭代器遍历并查看/分析地图值,并创建   一些具有我想要的价值的arraylist。有什么相同的   在jQuery?

Any javascript object can be seen as an associative map

例如,您可以data['currency']直接访问货币。

您还可以构建一个数组:

var a = [];
for (var key in data) {
    a.push({key:key, value:data[key]});
}

您还可以构建一些HTML并将函数应用于数据:

$(document.body).append($(
   '<table>' + a.map(function(v){
      return '<tr><td>'+v.key+'</td><td>'+v.value+'</td></tr>'
   }).join('')+'</table>'
));

Demonstration

使用jQuery可以使相同的迭代变得更简单(直接从data开始):

$(document.body).append($(
   '<table>' + $.map(data, function(value,key){
      return '<tr><td>'+key+'</td><td>'+value+'</td></tr>'
   }).join('')+'</table>'
));

Demonstration

答案 1 :(得分:1)

尝试使用each

success: function (data){   
    $.each( data, function( key, value ) {
        if(key === "currency")
            alert( key + ": " + value );
    });   
});