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

标签 c# json asp.net-core

既然没有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:

    services.AddMvc()
        .AddNewtonsoftJson();

阅读 Json.NET supportMigrate from ASP.NET Core 2.2 to 3.0 Preview 2了解更多信息。

关于c# - ASP.Net Core 中的 JSON 序列化/反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29841503/

相关文章:

c# - 使用受约束泛型类型 C# 的静态方法

c# - .NET WCSF 作为基于门户网站的 UI 堆栈选择?

c# - Raven DB 的数据访问架构

php - 来自 WikiMedia API 的 cURL HTTP 请求不起作用

asp.net-core - 获取错误 : Entity type 'Course' is defined with a single key property,,但 2 个值已传递给 'DbSet.Find' 方法

c# - .NET Core 2.0 带路由的最小 WebHost

c# - 原子检查文件是否存在并打开它

javascript - 无法在 ionic 模板中显示成功的 angularjs $http 从本地服务器获取响应

json - spring prefixjson 与 responsebody

asp.net-core - Blazor 中的@{} @code{} 和 @function{} 有什么区别?