繁体   English   中英

如何使用非法的json字段名称重命名和重新映射字段

[英]How to rename and remap fields with illegal json field names

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

除了json2csharp命名某些字段invalid_name之外 ,它实际上按预期方式工作。 我将这些名称重命名为有效的csharp名称,但是在序列化时,这些类为null。

我找到了另一篇SO帖子 ...其中一个回答者说以下...

请记住,由于json中某些字段的命名,我下面粘贴的类将无法直接使用。 您可能必须手动重命名并映射它们。

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

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

有任何想法吗?

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

一个示例是JSON中名为1的属性,该属性在C#中无效。 可以使用以下方法更正此问题:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM