【问题标题】:How to rename and remap fields with illegal json field names如何使用非法 json 字段名称重命名和重新映射字段
【发布时间】:2013-02-17 02:36:49
【问题描述】:

我使用 json2csharp 生成了一些不错的 c# 类,我可以在其中反序列化 json。

它实际上按预期工作,除了 json2csharp 命名了一些字段 invalid_name 。我将它们重命名为有效的 csharp 名称,但在序列化时这些类为空。

我找到this other SO post...其中一位回答者说以下...

请记住,我在下面粘贴的类不能直接工作, 因为 json 中一些字段的命名。你可能有 手动重命名它们并映射它们。

这正好描述了我的问题。不幸的是,答案没有提供有关如何“映射它们”的线索。所以有人可以告诉我如何手动将一些 json 数组映射到 c# 类。

顺便说一句,我正在使用 RestSharp 反序列化器。

有什么想法吗?

【问题讨论】:

    标签: c# json deserialization restsharp json2csharp


    【解决方案1】:

    如果您使用 JSON.NET 作为基础或 JSON 解析,您可以重命名您的属性,然后用属性装饰它们以将它们与原始 JSON 对象对齐。

    例如,JSON 中名为 1 的属性在 C# 中无效。这可以使用以下方法纠正:

     [JsonProperty("1")]
     public int? One { get; set; }
    

    如果要在类级别进行编辑,还有一个 JsonObject 属性,还有一个 JsonIgnore 对象来忽略属性的序列化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-02
      • 2017-03-11
      • 1970-01-01
      • 2021-06-08
      • 1970-01-01
      • 2017-05-25
      • 2021-07-14
      相关资源
      最近更新 更多