既然没有JavaScriptSerializer
,可以使用什么本机实现来处理呢?
我注意到了,JsonResult
并且可以使用此格式将数据格式化为JSON,但是如何反序列化?
或者,也许我缺少某些依赖项project.json
?
既然没有JavaScriptSerializer
,可以使用什么本机实现来处理呢?
我注意到了,JsonResult
并且可以使用此格式将数据格式化为JSON,但是如何反序列化?
或者,也许我缺少某些依赖项project.json
?
Answers:
您可以使用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
和之上使用新的JSON序列化器层Utf8JsonWriter
。它从JSON反序列化对象并将对象序列化为JSON。内存分配保持最少,并包括支持使用Stream异步读取和写入JSON。
首先,请使用名称空间中的JsonSerializer
类System.Text.Json.Serialization
。请参阅文档以获取信息和示例。
要在ASP.NET Core 3.0项目中使用Json.NET:
services.AddMvc()
.AddNewtonsoftJson();
阅读Json.NET支持的迁移从ASP.NET核心2.2至3.0的第二个预览版的详细信息。
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);
有关排除属性和空值的更多信息,请参见 Microsoft方面。