【发布时间】:2019-01-15 14:26:42
【问题描述】:
考虑一下这个 JSON:
{
"firstName": "John",
"lastName": "Doe",
"homeAddress": {
"streetAddress": "123 Main St",
"city": "Boston",
"state": "MA",
"postalCode": "02110"
},
"employmentInfo": {
"employerName": "ABC, Co.",
"phoneNumber": "617-555-5555"
}
}
在 VS 中,我可以使用“编辑 > 选择性粘贴”中的“将 JSON 粘贴为类”。结果如下:
public class Rootobject
{
public string firstName { get; set; }
public string lastName { get; set; }
public Homeaddress homeAddress { get; set; }
public Employmentinfo employmentInfo { get; set; }
}
public class Homeaddress
{
public string streetAddress { get; set; }
public string city { get; set; }
public string state { get; set; }
public string postalCode { get; set; }
}
public class Employmentinfo
{
public string employerName { get; set; }
public string phoneNumber { get; set; }
}
注意几件事:1.) 类名都有一个初始大写字符,然后都是小写,2.) 属性都是 lowerCamelCase。
数字 1 没有任何意义。为什么会这样,有官方原因吗? 2 号是有道理的,但我希望能够改变行为,这样我的编译器就不会抱怨我的属性命名错误。
有没有办法调整这种行为?
【问题讨论】:
-
不要认为你可以在 VS tbh 中配置它,尽管这个插件可能会帮助你:marketplace.visualstudio.com/…
-
我看不出输出有什么问题。类 HomeAddress 是默认大小写,但属性 homeAddress 与 JSON 中的一样。为什么编译器会抱怨?
-
@toni -- 没有类是“家庭地址”。第二个单词是小写的。关于您的第二点:我理解,但在 C# 中,属性名称是 UpperCamelCase(即 Pascal Case)。 VS 抱怨(基于我设置的方式)当它不是那样时,所以对于大型 JSON,修复所有这些或 pragma 出来是很痛苦的。
-
我想我明白你的意思了。而且我不知道如何解决。虽然我不知道 VS 中存在此功能,但它对我来说会派上用场,如果有人对您的问题有答案,更是如此。
标签: c# json visual-studio visual-studio-2017 camelcasing