2012-08-24 39 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