2012-03-14 147 views
0

这里是我的jQuery来解析Json结果我从我的页面返回。如何使用jQuery解析Json结果

{ “结果”:真正的 “动作”: “添加”}

$ .parseJSON(数据)不解析它。我需要获得Result和Action值。

$("#favorite").click(function() { 

     $.getJSON('/review/favorite/[email protected](Model.Review.Id)', function (data) { 
      var result = $.parseJSON(data); 
      alert(result.Action); 
      if (result.result == true && result.action == "add") { 
       alert("add"); 
      } else if (result.result == true && result.action == "delete") { 
       alert("delete"); 
      } 
     }); 

     return false; 
    }); 
+6

jQuery已经解析了你的json,你不需要自己动手 – ori 2012-03-14 11:40:51

+0

数据已经被解析;-) – clops 2012-03-14 11:41:54

+0

就像@ori说的,getJSON已经将数据解析成一个对象。如果哟做着获得(),那么你就需要使用parseJSON上的数据,但因为你叫.getJSON你不需要。 – davidethell 2012-03-14 11:42:39

回答

4

你不需要调用parseJSON,它已经完成了。所以只能使用data.Action

另外它的区分大小写,因此它的data.Actiondata.Result

1

(以上if语句中),你可以简单地做:

var result = data; 

以下是多余的 $.parseJSON(data);

0

其他是正确的,但我想我会进入更详细,因为,好吧,我很无聊。

JSON(JavaScript对象符号)是JavaScript对象的字符串表示。你不(通常,至少)直接操纵JSON数据。相反,可以将其转换,它代表,操纵它们在JavaScript,然后又可能将其转换回JSON如果需要的话的JavaScript对象。

$ .parseJSON()被用于此目的 - 它转换一个JSON字符串转换为实际的JS对象。

然而的getJSON()函数的情况比较特殊,因为它解析JSON为你,然后将所得JSON数据传递给回调函数作为可变的“数据”。这意味着你只能看到实际的数据 - 你的代码甚至不会看到JSON字符串。

我想这个名字的getJSON有些误导,因为它不回报 JSON,它得到JSON,分析它,并返回JavaScript 对象