2012-07-12 170 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

相关问题