【发布时间】:2017-08-31 19:51:39
【问题描述】:
我已经完成了我的第一个 ASP.NET Core Web API,我想尝试通过 JSON.NET 库手动序列化/反序列化 JSON。在 JSON.NET 文档中,他们给出了以下简单的手动序列化示例:
public static string ToJson(this Person p)
{
StringWriter sw = new StringWriter();
JsonTextWriter writer = new JsonTextWriter(sw);
writer.WriteStartObject();
// "name" : "Jerry"
writer.WritePropertyName("name");
writer.WriteValue(p.Name);
// "likes": ["Comedy", "Superman"]
writer.WritePropertyName("likes");
writer.WriteStartArray();
foreach (string like in p.Likes)
{
writer.WriteValue(like);
}
writer.WriteEndArray();
writer.WriteEndObject();
return sw.ToString();
}
对于像我这样的初学者来说,缺少的是如何使用这个字符串。例如,考虑以下情况:
[HttpGet("/api/data")
[Produces("application/json")]
public IActionResult GetData()
{
return Ok(new Byte[SomeBigInt]);
}
在上面的代码中,我真的不知道 ASP.NET Core 在哪里将数组序列化为 JSON...我假设它发生在引擎盖下的某个地方。如果我要手动序列化(使用 JSON.NET 示例)一些大字节数组,我该如何处理结果字符串?它只是“返回 Ok(myJsonString);”吗?内置的序列化器不会再次序列化它吗 - 不知道它已经是序列化操作的结果?
【问题讨论】:
-
您可以创建自己的
IActionResult派生结果并返回您的序列化内容
标签: json asp.net-web-api asp.net-core asp.net-core-webapi