Eri*_*ikE 5 c# serialization json asp.net-mvc-5
如何轻松地返回混合了普通对象和文字 JSON 字符串的响应,这些响应应该在 JSON 流中内联发出,完全原样,无需解释或编码?
public JsonResult Something() {
var literalJson = "{\"a\":1,\"b\":2}";
return Json(new {
result = "success",
responseTime = DateTimeOffset.Now(),
data = literalJson // only, don't JSON-encode this, emit it as-is
});
}
Run Code Online (Sandbox Code Playgroud)
创建一个LiteralJson类可以工作,并Converter为其定制。但我不确定这是否最有意义。
Converter如果这是一个可靠的实现,我知道如何定制。还有其他方法可以实现相同的目标吗?
如果您安装了 Json.Net,您可以使用JRaw:
public ContentResult Something()
{
var literalJson = "{\"a\":1,\"b\":2}";
var resp = new
{
result = "success",
responseTime = DateTimeOffset.Now,
data = new Newtonsoft.Json.Linq.JRaw(literalJson)
};
return Content(JsonConvert.SerializeObject(resp), "application/json", Encoding.UTF8);
}
Run Code Online (Sandbox Code Playgroud)
但请注意,您需要使用 Json.Net 的序列化器才能实现此目的。这就是为什么我将上面的代码更改为使用JsonConvert.SerializeObject并返回 aContentResult而不是像您最初所示的那样使用控制器的Json方法。该Json方法在内部使用JavaScriptSerializer,它不知道如何处理JRaw.
| 归档时间: |
|
| 查看次数: |
1674 次 |
| 最近记录: |