2012-03-14 145 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 對象