自动从JSON生成c#类,包括属性初始化器

本文关键字:包括 属性 初始化 JSON 生成 | 更新日期: 2023-09-27 18:14:20

有很多很棒的方法可以从JSON自动生成c#代码,比如这里和这里。

但是,结果代码不包含属性初始化式。例如,以下JSON:
{
"Name" : "Blastoise"
}

被反序列化为:

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

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

但是如果我想要呢?除了手动添加每个值之外,是否有一种方法可以将JSON反序列化为以下内容?

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

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

自动从JSON生成c#类,包括属性初始化器

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

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

第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";
}