2013-01-08 49 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

相關問題