如何使用DataContractJsonSerializer反序列化JsonResult

时间:2012-07-12 19:22:44

标签: asp.net-mvc json datacontractserializer

我有一个返回的MVC控制器:

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());

他们输出的文字是:“{\”Name \“:\”Peter \“}”“

当尝试反序列化值时,Name为null。

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

我发现问题出现在反斜杠中..关于如何使其工作的任何线索?

由于

1 个答案:

答案 0 :(得分:2)

替换:

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

使用:

return Json(userObj, JsonRequestBehavior.AllowGet);