ASP.Net Core中的JSON序列化/反序列化


Answers:


235

您可以使用Newtonsoft.Json,它的依赖项Microsoft.AspNet.Mvc.ModelBinding是的依赖项Microsoft.AspNet.Mvc。因此,您无需在project.json中添加依赖项。

#using Newtonsoft.Json
....
JsonConvert.DeserializeObject(json);

请注意,使用WebAPI控制器,您无需处理JSON。

更新ASP.Net Core 3.0

Json.NET已从ASP.NET Core 3.0共享框架中删除。

您可以在高性能Utf8JsonReader和之上使用新的JSON序列化器层Utf8JsonWriter。它从JSON反序列化对象并将对象序列化为JSON。内存分配保持最少,并包括支持使用Stream异步读取和写入JSON。

首先,请使用名称空间中的JsonSerializerSystem.Text.Json.Serialization。请参阅文档以获取信息和示例。

要在ASP.NET Core 3.0项目中使用Json.NET:

    services.AddMvc()
        .AddNewtonsoftJson();

阅读Json.NET支持迁移从ASP.NET核心2.2至3.0的第二个预览版的详细信息。


现在,AspNetCore.Mcv对Newtonsoft.JSON没有依赖关系。用于序列化的Microsoft.AspNet.Mvc.Formatters.Json程序集。
Roman Pokrovskij

9
@RomanPokrovskij,错了,:Microsoft.AspNetCore.Mvc.Formatters.Json必须依赖Microsoft.AspNetCore.JsonPatch具有依赖性Newtonsoft.Json9.0.1 nuget.org/packages/Microsoft.AspNetCore.Mvc.Formatters.Jsonnuget.org/packages/Microsoft.AspNetCore.JsonPatch
德阿来自火星

您还可以使用JsonConvert.DeserializeObject <YourClass>(json)将其反序列化为特定的类。
努诺·里贝罗

13

.net核心

using System.Text.Json;

序列化

var jsonStr = JsonSerializer.Serialize(MyObject)

反序列化

var weatherForecast = JsonSerializer.Deserialize<MyObject>(jsonStr);

有关排除属性和空值的更多信息,请参见 Microsoft方面。


您知道如何将json反序列化为动态类型吗?
zolty13
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.