JSONResult转换为String


70

我有一个JsonResult工作正常,并从某些POCO返回JSON。我想将JSON作为字符串保存在数据库中。

public JsonResult GetJSON()
{
    JsonResult json = new JsonResult
    {
        Data = GetSomPocos()
    }; 
    return json;
}

我需要审核响应,因此要将其保存json到数据库中。我很难找到一种将JSON作为字符串获取的方法。

任何帮助表示赞赏。

Answers:


117

您正在寻找的JavaScriptSerializer,它是由JsonResult内部使用:

string json = new JavaScriptSerializer().Serialize(jsonResult.Data);

如果只是做一些简单的事情,例如将array转换为json。这个方法很棒。不需要Json.Net
asakura89'4

30

您也可以使用Json.NET。

return JsonConvert.SerializeObject(jsonResult.Data);

我实际上有一个使用JavaScriptSerializer序列化和使用JsonConver.DeserializeObject <T>(...)反序列化的错误。使用此修复它。
craastad 2013年

我注意到JsonCovert返回的结果比JS序列化器更准确。
Subrata Sarkar 2015年

我一直使用Newtonsoft的库(JsonConvert父命名空间),并且效果很好!这主要是因为我一直在使用Web表单,但是即使现在我仍然使用MVC4,我仍然没有理由切换。。。除非有人有我不知道的理由?
2015年

-13
json = " { \"success\" : false, \"errors\": { \"text\" : \"绑定登录失败!\" } }";            
return new MemoryStream(Encoding.UTF8.GetBytes(json));
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.