有很多很好的方法可以从JSON自动生成C#代码,例如here和here。
但是,生成的代码不包含属性初始值设定项。例如,以下JSON:
{
"Name" : "Blastoise"
}
被反序列化为:
public class RootObject
{
public string Name { get; set; }
}
可能这是设计上的,因为JSON中使用的值可能会被覆盖,所以添加初始化程序可能会让那些不想要它们的人烦恼。
但是如果我想要呢?如果没有手动手动添加每个值,有没有办法将JSON反序列化为以下内容?
public class RootObject
{
public string Name { get; set; } = "Blastoise";
}
显然,在这种情况下,手动编辑很容易,但对于较大的JSON对象,手动编辑会变得乏味。
答案 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";
}