2011-05-11 102 views
0

比方說,我通過如何從一個JSON對象訪問一個名稱值對

JavascriptSerializer oSer = new JavascriptSerializer(); 
string sJson = oSer.Serialize(myObject); 

,我得到通過AJAX調用返回到我的客戶端的JSON已經從服務器傳回該JSON對象是

"{\"IsValid\":false,\"EmployeeId\":null,\"fullName\":\"a\",\"EmailAddress\":\"n/a\",\"PhoneNumber\":\"n/a\"}" 

打完$.parseJSON(result);

是有可能不通過整個對象名稱/值對循環檢索只是IsValid的價值?

更新: 似乎是當json到達客戶端時:變爲=名稱值對之間。所以現在我必須弄清楚如何用a代替=,所以我可以像解析真正的對象屬性一樣解析和訪問它。

success: function (data) 
        { 
         data.replace("=", ":"); 
        } 

不起作用。

還我有AJAX類型屬性設置爲「json的」

回答

0

我發現了這個問題。在

$.ajax(
     { 
      type: "POST", 
      data: "myJson=" + jsonData, 
      url: "/myURL", 
      success: function (result) 
      { 
       //some code 
      } 
     }); 

我有數據類型:「JSON」 這也正是從服務

1

您不必在各字段反正環路 - 只是訪問它從parseJSON結果的直接財產。

var obj = $.parseJSON(result); 
alert(obj.IsValid); 
+0

僅適用於通過從服務器返回一個JSON字符串轉換我的正確配置JSON。當你通過C#序列化一個OBJECT時,你會得到類型OBJECT OBJECT。我發現的唯一的東西是使用$ .each()獲取名稱/值對 – Anthony 2011-05-11 13:18:50

0

肯定的:

var obj = jQuery.parseJSON(result); 
alert(obj.IsValid); 
1
var myObj = $.parseJSON(result); 
myObj.IsValid 

確保你的結果是用引號括起來,單引號都OK。

+0

他們在代碼中,我只是沒有將它們粘貼到問題中 – Anthony 2011-05-11 13:21:49