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

Pet*_*ter 1 c# json

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

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

{
"Name" : "Blastoise"
}
Run Code Online (Sandbox Code Playgroud)

得到反序列化:

public class RootObject
{
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

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

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

public class RootObject
{
    public string Name { get; set; } = "Blastoise";
}
Run Code Online (Sandbox Code Playgroud)

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

小智 5

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

使用您提到的转换器的源代码.

204行快速更改

sw.WriteLine(prefix + "public {0} {1} {{ get; set; }} = {2};", field.Type.GetTypeName(), field.MemberName, field.GetExamplesText());
Run Code Online (Sandbox Code Playgroud)

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

internal class SampleResponse1
{

    [JsonProperty("Name")]
    public string Name { get; set; } = "Blastoise";
}
Run Code Online (Sandbox Code Playgroud)