在 ASP.net Core 中将对象转换为 Json
Posted
技术标签:
【中文标题】在 ASP.net Core 中将对象转换为 Json【英文标题】:Convert an object to Json in ASP.net Core 【发布时间】:2020-06-30 03:06:34 【问题描述】:我正在尝试将“Persona”转换为 .net Framework 4 中的 json 字符串并将其作为对象,我需要帮助。
我已经尝试过了(使用 System.Text.Json)
public HttpResponseMessage Get(int id)
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
Personas persona = context.tPersonas.FirstOrDefault(p => p.idPersona == id);
if (persona != null)
var jsonData = JsonSerializer.Serialize(persona);
response.Content = new StringContent(jsonData);
response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
return response;
else
return response = new HttpResponseMessage(HttpStatusCode.BadRequest);
还有这个(使用 Newtonsoft.Json);
public HttpResponseMessage Get(int id)
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
Personas persona = context.tPersonas.FirstOrDefault(p => p.idPersona == id);
if (persona != null)
response.Content = new StringContent(JsonConvert.SerializeObject(persona));
response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
return response;
else
return response = new HttpResponseMessage(HttpStatusCode.BadRequest);
调试时,“persona”有数据,“Serialize”显示为null。
我也尝试了“Request.CreateResponse”,但由于某些奇怪的原因它未被识别为有效代码。
我跳过了哪一步?
【问题讨论】:
与 Newtonsoft 一起工作。你的问题不存在 var persona = new Name = "name", LastName = "lastname" ; var st = JsonConvert.SerializeObject(persona); st 变量以 null 结尾,不知道为什么。想法? 清理你的解决方案,构建并重新运行它,我亲自测试过它并且它可以工作 谢谢先生!它像你说的那样工作。您是否知道如何在请求成功的情况下发送该 JSON 并在失败的情况下发送错误? 【参考方案1】:如果想在asp.core mvc中使用HttpResponseMessage
返回信息,需要完成以下步骤。
Microsoft.AspNetCore.Mvc.WebApiCompatShim
包为你
项目。
将services.AddMvc().AddWebApiConventions();
添加到starup.cs 文件中的ConfigureServices。
代码如下:
public HttpResponseMessage Get(int id)
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
Personas persona = _context.tPersonas.FirstOrDefault(p => p.idPersona == id);
if (persona != null)
response.Content = new StringContent(JsonConvert.SerializeObject(persona));
response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
return response;
else
response = new HttpResponseMessage(HttpStatusCode.BadRequest);
response.Content = new StringContent("error message");
return response;
您也可以参考this。
这是来自邮递员的调试过程:
【讨论】:
非常感谢先生!这就是我要找的:)以上是关于在 ASP.net Core 中将对象转换为 Json的主要内容,如果未能解决你的问题,请参考以下文章
Google Chart和Chart.Js,在Asp .NET Core 2.2中将脚本端发送C#变量
在 ASP.NET Core 中将 html 导出为 pdf
在 ASP.NET Core 中将 Razor 视图渲染为字符串
如何在 ASP .NET Core 2.1 中将登录页面设为默认路由?