不了解如何将JSON.NET与ASP.NET Core WebAPI一起使用
发布时间:2020-12-16 18:40:06 所属栏目:百科 来源:网络整理
导读:我已经完成了我的第一个ASP.NET核心Web API,我想尝试通过 JSON.NET库手动序列化/反序列化JSON.在JSON.NET文档中,他们提供了以下简单的手动序列化示例: public static string ToJson(this Person p){ StringWriter sw = new StringWriter(); JsonTextWriter
我已经完成了我的第一个ASP.NET核心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示例)一些大的Byte数组,我该如何处理结果字符串?它只是“返回Ok(myJsonString);”?内置的序列化程序 – 不知道它已经是序列化操作的结果 – 不会再次序列化吗? 解决方法
由于Asp.Net Core非常灵活,因此有几种方法可以返回JSON.如果你想从控制器返回Json,最直接的方法之一就是这样:
[HttpGet("/api/data")] public JsonResult GetData() { return Json(new { fieldOneString = "some value",fieldTwoInt= 2 }); } 使用JSON.NET在Controlleris上使用Json()辅助方法进行JSON序列化,然后将其作为响应主体发送. 你可以这样做: string jsonText = JsonConvert.SerializeObject(new { fieldOneString = "some value",fieldTwoInt= 2 }); Response.WriteAsync(jsonText); 注意:要使用Response.WriteAsync(jsonText),您需要使用Microsoft.AspNetCore.Http添加到您的文件,并具有对Microsoft.AspNetCore.Http.Abstractions的项目引用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |