2012-07-12 169 views
0

我有一個MVC控制器返回:如何反序列化JsonResult與DataContractJsonSerializer

public JsonResult ValidateUser(string siteId, string userName, string password) 
{ 
      UserObj userObj = new UserObj(); 
      userObj.Name = userName; 
      return Json(JsonConvert.SerializeObject(userObj), JsonRequestBehavior.AllowGet); 
} 

然後在客戶端,我有:

MemoryStream ms = new MemoryStream(); 
stream.Copy(ms); 
var text = Encoding.Default.GetString(ms.ToArray()); 

他們輸出的文字是: 「{\」 名稱\」 :\「Peter \」}「

試圖將值反序列化時Name爲null。

DataContractJsonSerializer obj = new DataContractJsonSerializer(typeof(UserObj)); 
var resultUser = obj.ReadObject(stream) as UserObj; 

我發現問題是在反斜槓..任何線索如何使其工作?

感謝

+1

無需序列兩次! – 2012-07-12 19:27:29

回答

2

替換:

return Json(JsonConvert.SerializeObject(userObj), JsonRequestBehavior.AllowGet); 

有:

return Json(userObj, JsonRequestBehavior.AllowGet); 
+0

非常感謝... !!你完全正確所以愚蠢的我是:) - .-。感謝Darin。 – VAAA 2012-07-12 19:31:57

+0

你有沒有設法讓它工作?有什麼你想問的,或者你可能考慮關閉這個線程? – 2012-07-12 19:38:55

+0

一切都完美!謝謝Darin。只需點擊接受的複選標記。 :)再次感謝! – VAAA 2012-07-12 19:50:55

相關問題