2013-01-08 51 views
1

我是jQuery的新手。以下是包含json字典的data变量。如何浏览JavaScript对象

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

和我的jQuery的方法接收从休息GET呼叫

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

是否有可以帮助解析/走过这个JSON对象,并获得某种对象列表中的任意库json/Javascript object?我想检查一些键和它们各自的值。问题是我不需要列表中的所有键和值,还有一些值可以为空,这使我无法应用我使用SO发现的一些解决方案。

或者通常是直接在成功函数里面打印HTML更常见?

编辑:如果它是java例如它将是一个地图,我会用一个迭代器遍历和查看/分析地图值,并创建一些数组列表与我想要的值。什么相当于jQuery中的?

+3

你不需要任何库走在一个js对象。什么访问/迭代对你来说是一个问题? –

+0

你想要做什么与对象属性 – C5H8NNaO4

+1

“我的JQuerry方法接收Json”对象“” - 没有这样的事情,那只是一个JavaScript对象。 – Quentin

回答

3

如果是java的,例如这将是一个地图,我会用一个 迭代穿行,看到/分析图的值,并创建 一些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

+0

之前感谢您的全面回答 – Spring

+0

以及如何获取事务的子数组元素? – Spring

1

尝试使用each

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

他说他不希望所有的'键,值' – Amyth

+1

@Palash谢谢+1 – Spring

相关问题