我已经使用json2csharp来生成一些很好的c#类,我可以将其反序列化为json。
它实际上按预期工作除了json2csharp命名了一些字段 invalid_name 。我将它们重命名为有效的csharp名称,但在序列化时,这些类为null。
我找到了this other SO post ...其中一位回答者说了以下内容......
请记住,我在下面粘贴的课程不能直接使用, 因为json中某些字段的命名。你可能有 手动重命名并映射它们。
这完全描述了我的问题。不幸的是,答案没有给出实际如何“映射它们”的线索。那么有人可以告诉我如何手动将一些json数组映射到c#类。
我正在使用RestSharp反序列化器,顺便说一下。
有什么想法吗?
答案 0 :(得分:6)
如果您使用JSON.NET作为基础或JSON解析,则可以重命名属性,然后使用属性对它们进行装饰,以使它们与原始JSON对象对齐。
一个例子是JSON中的一个名为1的属性,它在C#中无效。可以使用以下方法更正此问题:
[JsonProperty("1")]
public int? One { get; set; }
如果要在类级别进行编辑,还有一个JsonIgnore对象可以忽略属性的序列化。