2012-08-24 80 views
0

我有一個JSON數組,它看起來像一個字段值檢索值從JSON數組,從收到的WebAPI通過了解Jquery的

0: {NodeID:1, Node_Location:30,0,60,30, Node_CurrentURL:http://google.com, Node_Title:google,Node_Amount: 10} 
1: {NodeID:2, Node_Location:90,90,160,30, Node_CurrentURL:http://gmail.com, Node_Title:gmail,Node_Amount: 30} 
2: {NodeID:3, Node_Location:180,160,260,30, Node_CurrentURL:http://asp.net, Node_Title:asp,Node_Amount: 40} 

我的JSON數組並希望顯示在客戶端。

我如何通過了解NodeID來檢索Node_Amount? 請幫我, 謝謝。

+0

如果你可以依賴'NodeID'總是比數組索引高一個,你可以'yourObject [knownId-1] .Node_Amount'。除了上面顯示的數據不是有效的JSON格式... – nnnnnn

回答

0

你可以這樣來做:

$.each(jsonarray, function(index, value) 
{ 
    if (value.NodeID == specificnodeid) 
    { 
     //store it some place safe 
     return; 
     //or alternatively you can return the value as 
     // return value; 
    } 
}); 
+0

''.each()'回調函數中使用'return value'時不會返回該值。 (我的意思是,技術上它會將值返回給jQuery,但jQuery不會將它傳遞給您的代碼。) – nnnnnn

0

假設這是解析JSON陣列的輸出模式:

var json = { 
    0: { 
    NodeID: 1, 
    Node_Location: [], 
    Node_CurrentURL: '', 
    Node_Title: '', 
    Node_Amount: 10 
    }, 
    1: { 
    NodeID: 2, 
    Node_Location: [], 
    Node_CurrentURL: '', 
    Node_Title: '', 
    Node_Amount: 30 
    } 
}; 

如果你知道NodeID是一樣的根對象加一個,你想知道Node_Amount的id號可能就這麼簡單:

var id = 1; 
var amount = json[String(id-1)].Node_Amount; // 10 
0

如果預處理陣,讓我們把它NodeArray

var NodeArray = [{ 
    NodeID: 1, 
    Node_Location: [30, 0, 60, 30], 
    Node_CurrentURL: "http://google.com", 
    Node_Title: "google", 
    Node_Amount: 10 
}]; 

到一個關聯數組Nodes與關鍵勢必NodeID

var Nodes = {}; 
for (var i = 0; i < NodeArray.length; i++) { 
    Nodes[NodeArray[i].NodeID] = NodeArray[i]; 
} 

,那麼你可以很容易地通過NodeID訪問任何元素NodesNodes[NodeID]

console.log(Nodes[1]); 
// {NodeID:1, Node_Location:[30,0,60,30], Node_CurrentURL:"http://google.com", Node_Title:"google", Node_Amount:10} 

這僅僅依賴於事實NodeID是獨特的,它是存在的。

0

你的對象is'nt真的有效,我猜串被引用等,它確實是這樣的:

var obj = { 
    0: {NodeID:1, Node_Location:'30,0,60,30', Node_CurrentURL:'http://google.com', Node_Title:'google',Node_Amount: 10}, 
    1: {NodeID:2, Node_Location:'90,90,160,30', Node_CurrentURL:'http://gmail.com', Node_Title:'gmail',Node_Amount: 30}, 
    2: {NodeID:3, Node_Location:'180,160,260,30', Node_CurrentURL:'http://asp.net', Node_Title:'asp',Node_Amount: 40} 
     }; 

而且你可以通過做訪問值:

var URL = obj[0].Node_CurrentURL; 

FIDDLE