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

时间:2013-02-17 02:36:50

标签: c# json deserialization restsharp json2csharp

我已经使用json2csharp来生成一些很好的c#类,我可以将其反序列化为json。

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

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

  

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

这完全描述了我的问题。不幸的是,答案没有给出实际如何“映射它们”的线索。那么有人可以告诉我如何手动将一些json数组映射到c#类。

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

有什么想法吗?

1 个答案:

答案 0 :(得分:6)

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

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

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

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