既然没有JavaScriptSerializer
,那可以用什么原生实现来处理呢?
我注意到 JsonResult
并且我可以使用它将数据格式化为 JSON,但是我该如何反序列化?
或者我在 project.json
中缺少一些依赖项?
最佳答案
您可以使用 Newtonsoft.Json
,它是 Microsoft.AspNet.Mvc.ModelBinding
的依赖项这是 Microsoft.AspNet.Mvc
的依赖项.因此,您无需在 project.json 中添加依赖项。
#using Newtonsoft.Json
....
JsonConvert.DeserializeObject(json);
注意,使用 WebAPI Controller 不需要处理 JSON。
更新 ASP.Net Core 3.0
Json.NET已从 ASP.NET Core 3.0 共享框架中移除。
您可以在高性能 Utf8JsonReader
之上使用新的 JSON 序列化程序层和 Utf8JsonWriter
.它将对象从 JSON 反序列化并将对象序列化为 JSON。内存分配保持最小,包括支持异步读取和写入 JSON 流。
要开始使用,请使用 JsonSerializer
System.Text.Json.Serialization
中的类命名空间。见 documentation获取信息和样本。
在 ASP.NET Core 3.0 项目中使用 Json.NET:
- 添加对 Microsoft.AspNetCore.Mvc.NewtonsoftJson 的包引用
- 更新 ConfigureServices 以调用 AddNewtonsoftJson()。
services.AddMvc()
.AddNewtonsoftJson();
阅读 Json.NET support在 Migrate from ASP.NET Core 2.2 to 3.0 Preview 2了解更多信息。
关于c# - ASP.Net Core 中的 JSON 序列化/反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29841503/