从JSON自动生成C#类,包括属性初始值设定项

时间:2015-09-23 20:31:15

标签: c# json

有很多很好的方法可以从JSON自动生成C#代码,例如herehere

但是,生成的代码不包含属性初始值设定项。例如,以下JSON:

{
"Name" : "Blastoise"
}

被反序列化为:

public class RootObject
{
    public string Name { get; set; }
}

可能这是设计上的,因为JSON中使用的值可能会被覆盖,所以添加初始化程序可能会让那些不想要它们的人烦恼。

但是如果我想要呢?如果没有手动手动添加每个值,有没有办法将JSON反序列化为以下内容?

public class RootObject
{
    public string Name { get; set; } = "Blastoise";
}

显然,在这种情况下,手动编辑很容易,但对于较大的JSON对象,手动编辑会变得乏味。

1 个答案:

答案 0 :(得分:5)

  

有没有办法将JSON反序列化为以下内容?

使用您提到的转换器的source code

第204行

的快速更改
sw.WriteLine(prefix + "public {0} {1} {{ get; set; }} = {2};", field.Type.GetTypeName(), field.MemberName, field.GetExamplesText());

给我的结果与你描述的相似

internal class SampleResponse1
{

    [JsonProperty("Name")]
    public string Name { get; set; } = "Blastoise";
}