Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从JSON字符串自动生成C#类文件_C#_Json_Code Generation - Fatal编程技术网

如何从JSON字符串自动生成C#类文件

如何从JSON字符串自动生成C#类文件,c#,json,code-generation,C#,Json,Code Generation,给定以下JSON对象 form = { "name": "", "address": { "street": "", "city": "", "province": "", "postalCode": "", "country": "" }, "phoneDay": "", "phoneCell": "", "businessName": "", "website": "", "email": "" } 自动生成以下C#类

给定以下JSON对象

form = {
  "name": "",
  "address": {
    "street": "",
    "city": "",
    "province": "",
    "postalCode": "",
    "country": ""
  },
  "phoneDay": "",
  "phoneCell": "",
  "businessName": "",
  "website": "",
  "email": ""
}
自动生成以下C#类的工具是什么

我们已经研究了这些问题:

正在询问JSON模式,这可能是今后使用的一种方法

五个选项:

  • 使用免费网络工具,无需安装任何东西

  • 如果在VisualStudio中有,请使用Edit>Paste special>Paste JSON作为类

  • 使用免费的.exe

  • web工具不需要安装任何东西

  • web工具也不需要安装任何东西

利与弊:

  • 转换为PascalCase,但其他人不转换

  • 具有识别字典和处理名称为无效c#标识符的JSON属性的逻辑


如果将Web Essentials安装到Visual studio中,则可以转到Edit=>Past special=>将JSON粘贴为类

这可能是最简单的

Web Essentials:

Visual Studio 2012(安装了ASP.NET和Web Tools 2012.2 RC)支持此功能

Visual Studio 2013及以后的版本都内置了此功能


(图片提供:)

???尝试此工具可能会有所帮助。。有人知道如何使用Swagger YAML做同样的事情吗?不幸的是,json2charp.com现在是一个正在出售的域名。那太糟糕了,而quicktipe有点笨重。有人知道更好的选择吗?@DARKGuy jsonutils Web Essentials和JSON2Charp都做得很好。没有尝试jsonclassgenerator,因为需要打开一个单独的应用程序似乎很麻烦。我没有尝试过jsonclassgenerator,但我看到了它的优点。例如,如果您有一个模拟api,您可以在一组端点上交互以重新生成模型。您甚至可以设置一个脚本来检查新提交,并在发生任何更改时更新模型。您不希望每次都手动粘贴新的json,因为这可能会出错。JSON2Charp工具在格式化类(尤其是类名)方面比VS做得更好。它将删除像“u3;”这样的不明确字符,并正确地用大小写表示类名。“jsonutils”非常酷,它还可以生成像“Json属性”这样的属性,app.quicktype.io由于安全问题,这一个在某些机器上不起作用。我认为这个解决方案是最好的,因为你不需要外部程序!粘贴之前,解决方案是将JSON从开发者工具中的console.log复制到剪贴板。希望有帮助。
public class ContactInfo
{
    public string Name { get; set; }
    public Address Address { get; set; }
    public string PhoneDay { get; set; }
    public string PhoneCell { get; set; }
    public string BusinessName { get; set; }
    public string Website { get; set; }
    public string Email { get; set; }
}

public class Address
{
    public string Street { get; set; }
    public string City { get; set; }
    public string Province { get; set; }
    public string PostalCode { get; set; }
    public string Country { get; set; }
}