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

既然没有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了解更多信息。

https://stackoverflow.com/questions/29841503/

相关文章:

javascript - 将json数据转换为html表

json - 在 JSON 结果中定义函数是否有效?

c# - 如何从 JSON 字符串自动生成 C# 类文件

javascript - 在 DOM 中嵌入任意 JSON 的最佳实践?

python - JSON到 Pandas 数据框

javascript - 嵌套的 JSON 对象 - 我必须对所有内容都使用数组吗?

javascript - 将 Javascript 对象编码为 Json 字符串

jquery - 如何检查值是否为 JSON 对象?

ruby-on-rails - 将 json 格式的键值对转换为以符号为键的 ruby​​ 哈希的最

javascript - 如何通过 JavaScript for 循环创建 json?