c# - 系统文本 json 使用标准反序列化

标签 c# json

我使用的是 .net core 5,而不是 NEWTONSOFT。我正在编写自定义序列化程序,因为我的 json 的 case 输出很奇怪;但我不介意使用标准解串器。

我有以下代码,遵循编写自定义 jsonConverters 的微软指南:

public class ThingConverter : JsonConverter<Thing>{
  public override void Write(Utf8JsonWriter writer, Thing t, JsonSerializerOptions options){
    // do stuff, this is fine
  }
  public override Thing Read(ref Utf8Reader reader, Type typeToConvert, JsonSerializerOptions options){
    // i want the DEFAULT behaviour here.
  }
}

谁知道如何让阅读器具有默认行为?

我尝试过的事情:

  • return JsonSerializer.Deserialize<Thing>(ref reader, options) -> 给出一个无限循环
  • 添加public override bool CanConvert(Type objectType){return false;} -> 抛出运行时错误,无法转换

首先,我正在使用声明

[JsonConverter(typeof(ThingConverter))]
public class Thing{
}

全局注册转换器。

最佳答案

如果您只想更改属性名称,请使用 [JsonPropertyName("Name")]https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-customize-properties

关于c# - 系统文本 json 使用标准反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67117316/

相关文章:

C# 多客户端服务器应用程序的问题

php - 从javascript读取JSON到PHP

json - Curl 从输出中获取特定值

c# - 从数组中删除空白值并建议一种更好的方法来读取由 '|' 分隔的文本文件数据

c# - 我的进程在等待输入吗?

c# - 更改文本文件编码

javascript - flask +d3.js : Passing multiple datasets to html

c# - asp插入错误

javascript - 执行前不显示 AngularJS 代码

json - PostgreSQL:将数据从json插入表