【发布时间】:2015-04-24 07:39:33
【问题描述】:
既然没有JavaScriptSerializer,那么可以用什么原生实现来处理呢?
我注意到JsonResult,我可以用它将数据格式化为 JSON,但是我该如何反序列化?
或者我在project.json 中缺少一些依赖项?
【问题讨论】:
标签: c# json asp.net-core
既然没有JavaScriptSerializer,那么可以用什么原生实现来处理呢?
我注意到JsonResult,我可以用它将数据格式化为 JSON,但是我该如何反序列化?
或者我在project.json 中缺少一些依赖项?
【问题讨论】:
标签: c# json asp.net-core
您可以使用Newtonsoft.Json,它是Microsoft.AspNet.Mvc.ModelBinding 的依赖关系,它是Microsoft.AspNet.Mvc 的依赖关系。因此,您无需在 project.json 中添加依赖项。
#using Newtonsoft.Json
....
JsonConvert.DeserializeObject(json);
注意,使用 WebAPI 控制器不需要处理 JSON。
Json.NET 已从 ASP.NET Core 3.0 共享框架中删除。
您可以在高性能 Utf8JsonReader 和 Utf8JsonWriter 之上使用新的 JSON 序列化程序层。它将对象从 JSON 反序列化并将对象序列化为 JSON。内存分配保持最小,包括支持异步读取和写入 JSON 流。
要开始使用,请使用 System.Text.Json.Serialization 命名空间中的 JsonSerializer 类。有关信息和示例,请参阅documentation。
在 ASP.NET Core 3.0 项目中使用 Json.NET:
services.AddMvc()
.AddNewtonsoftJson();
阅读Migrate from ASP.NET Core 2.2 to 3.0 Preview 2 中的Json.NET support 了解更多信息。
【讨论】:
Microsoft.AspNetCore.Mvc.Formatters.Json 依赖于 Microsoft.AspNetCore.JsonPatch 依赖于 Newtonsoft.Json 9.0.1 nuget.org/packages/Microsoft.AspNetCore.Mvc.Formatters.Json, nuget.org/packages/Microsoft.AspNetCore.JsonPatch
.net 核心
using System.Text.Json;
###要序列化
var jsonStr = JsonSerializer.Serialize(MyObject)
###反序列化
var weatherForecast = JsonSerializer.Deserialize<MyObject>(jsonStr);
有关排除属性和空值的更多信息,请查看 This Microsoft site
【讨论】: