【问题标题】:Configure class and member name casing (lowerCamelCase vs. UpperCamelCase) for "Paste JSON as Classes" in Visual Studio在 Visual Studio 中为“将 JSON 粘贴为类”配置类和成员名称大小写(lowerCamelCase 与 UpperCamelCase)
【发布时间】: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


【解决方案1】:

我自己没有找到在 Visual Studio 中配置它的方法。

如果您不介意打开浏览器窗口并从那里复制,QuickType 可以节省大量时间

https://app.quicktype.io/?l=csharp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 2013-09-02
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    相关资源
    最近更新 更多