JSON serialization/deserialization 在 ASP.Net 核心
JSON serialization/deserialization in ASP.Net Core
因为没有JavaScriptSerializer
,可以使用什么本机实现来处理这个问题?
我注意到 JsonResult
并且我可以用这个将数据格式化为 JSON,但是我该如何反序列化?
或者我可能在 project.json
中遗漏了一些依赖项?
您可以使用 Newtonsoft.Json
,它是 Microsoft.AspNet.Mvc.ModelBinding
的依赖项,Microsoft.AspNet.Mvc.ModelBinding
是 Microsoft.AspNet.Mvc
的依赖项。因此,您不需要在 project.json.
中添加依赖项
#using Newtonsoft.Json
....
JsonConvert.DeserializeObject(json);
注意,使用 WebAPI 控制器您不需要处理 JSON。
更新ASP.Net核心3.0
Json.NET 已从 ASP.NET Core 3.0 共享框架中删除。
您可以在高性能 Utf8JsonReader
和 Utf8JsonWriter
之上使用新的 JSON 序列化器层。它从 JSON 反序列化对象并将对象序列化到 JSON。内存分配保持最小,包括支持使用 Stream 异步读写 JSON。
首先,使用 System.Text.Json.Serialization
命名空间中的 JsonSerializer
class。有关信息和示例,请参阅 documentation。
要在 ASP.NET Core 3.0 项目中使用 Json.NET:
- 添加对 Microsoft.AspNetCore.Mvc.NewtonsoftJson
的包引用
- 更新 ConfigureServices 以调用 AddNewtonsoftJson()。
services.AddMvc()
.AddNewtonsoftJson();
阅读 Json.NET support in Migrate from ASP.NET Core 2.2 to 3.0 Preview 2 了解更多信息。
.net 核心
using System.Text.Json;
###要序列化
var jsonStr = JsonSerializer.Serialize(MyObject)
###反序列化
var weatherForecast = JsonSerializer.Deserialize<MyObject>(jsonStr);
有关排除属性和空值的更多信息,请查看
This Microsoft site
因为没有JavaScriptSerializer
,可以使用什么本机实现来处理这个问题?
我注意到 JsonResult
并且我可以用这个将数据格式化为 JSON,但是我该如何反序列化?
或者我可能在 project.json
中遗漏了一些依赖项?
您可以使用 Newtonsoft.Json
,它是 Microsoft.AspNet.Mvc.ModelBinding
的依赖项,Microsoft.AspNet.Mvc.ModelBinding
是 Microsoft.AspNet.Mvc
的依赖项。因此,您不需要在 project.json.
#using Newtonsoft.Json
....
JsonConvert.DeserializeObject(json);
注意,使用 WebAPI 控制器您不需要处理 JSON。
更新ASP.Net核心3.0
Json.NET 已从 ASP.NET Core 3.0 共享框架中删除。
您可以在高性能 Utf8JsonReader
和 Utf8JsonWriter
之上使用新的 JSON 序列化器层。它从 JSON 反序列化对象并将对象序列化到 JSON。内存分配保持最小,包括支持使用 Stream 异步读写 JSON。
首先,使用 System.Text.Json.Serialization
命名空间中的 JsonSerializer
class。有关信息和示例,请参阅 documentation。
要在 ASP.NET Core 3.0 项目中使用 Json.NET:
- 添加对 Microsoft.AspNetCore.Mvc.NewtonsoftJson 的包引用
- 更新 ConfigureServices 以调用 AddNewtonsoftJson()。
services.AddMvc()
.AddNewtonsoftJson();
阅读 Json.NET support in Migrate from ASP.NET Core 2.2 to 3.0 Preview 2 了解更多信息。
.net 核心
using System.Text.Json;
###要序列化
var jsonStr = JsonSerializer.Serialize(MyObject)
###反序列化
var weatherForecast = JsonSerializer.Deserialize<MyObject>(jsonStr);
有关排除属性和空值的更多信息,请查看 This Microsoft site