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


108

给定以下JSON对象,

form = {
  "name": "",
  "address": {
    "street": "",
    "city": "",
    "province": "",
    "postalCode": "",
    "country": ""
  },
  "phoneDay": "",
  "phoneCell": "",
  "businessName": "",
  "website": "",
  "email": ""
}

什么是自动生成以下C#类的工具?

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

我们已经研究了以下问题:

从JSON模式生成C#类正在询问有关JSON模式的信息,这可能是将来使用的一种方法。

为Json对象生成C#类的优缺点



尝试使用此工具可能会有所帮助。.tools4geeks.com/json
Dheeraj Palagiri

有人知道如何使用Swagger YAML做同样的事情吗?
ryanwebjackson

不幸的是json2charp.com现在正在出售一个域名。太烂了,而速记笔有点笨拙。有人知道更好的选择吗?
DARKGuy

@DARKGuy jsonutils jsonutils.com
拉斐尔

Answers:


146

五个选项:

  • 使用免费的jsonutils网络工具,无需安装任何工具。

  • 如果您在Visual Studio中具有Web Essentials,请使用“编辑”>“选择性粘贴”>“将JSON粘贴为类”。

  • 使用免费的jsonclassgenerator .exe

  • Web工具app.quicktype.io不需要安装任何内容。

  • 网络工具json2csharp也不需要安装任何内容。

优点和缺点:


Web Essentials和json2csharp都做得很好。未尝试使用jsonclassgenerator,导致似乎为此而需要打开单独的应用程序很麻烦
Zoran P.

1
我还没有尝试过jsonclassgenerator,但是我可以看到它的优势。例如,如果您有一个模拟api,则可以对一组端点进行交互以重新生成模型。您可以设置脚本来检查是否有新提交,并在发生任何更改的情况下更新模型。您不希望每次都手动粘贴新的json,因为这很容易出错。
比利·杰克·奥康纳

与VS相比,json2csharp工具在格式化类(尤其是类名)方面做得更好。它将删除诸如“ _”之类的歧义字符,并正确地以驼峰式区分其后的类名。
big_water

2
“ jsonutils”非常酷,它还可以生成“ Json properties”之类的属性,jsonutils.com
Dhanuka777

app.quicktype.io由于安全方面的考虑,这在某些机器上不起作用。
肖恩·Ch

121

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

Visual Studio 2013及更高版本具有此内置功能。

Visual Studio将JSON粘贴为类屏幕截图 (图片提供:robert.muehsig


4
我认为这种解决方案是最好的,因为您不需要外部程序!
阿布拉昂·卡尔达斯

在粘贴之前,这里开发人员工具中的console.log中的JSON复制到剪贴板的解决方案。希望会有所帮助。
shaijut

10

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

那可能是最简单的了。

Web Essentials:http//vswebessentials.com/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.