2014-02-06 165 views
63

一个C#类文件,如何自动生成考虑下面的JSON对象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; } 
} 

我们已经看了这些问题:

Generate C# classes from JSON Schema询问有关JSON架构可能是使用的道路的一种方法。

Benefits and drawbacks of generated C# classes for Json objects

+3

http://json2csharp.com/ ??? – Habib

+0

试试这个工具可能会有所帮助.. http://tools4geeks.com/json-to-Csharp-classes –

回答

99

三个选项:

优点和缺点:

+0

Web Essentials和json2csharp都做得很好。没有尝试jsonclassgenerator,导致它看起来像一个麻烦,需要打开一个单独的应用程序只为了 –

+1

我还没有尝试过jsonclassgenerator,但我可以看到优势。例如,如果你有一个模拟API,你可以通过一组端点来重新生成你的模型。您可以尽可能设置一个脚本来检查新的提交,并在有更改的情况下更新模型。您不希望每次都手动粘贴新的json,因为这可能容易出错。 –

+0

json2csharp工具比VS格式化类更好,尤其是类名格式。它将删除诸如“_”之类的含糊不清的字符,并在此后正确地使用类名。 –

8

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

这可能是最简单的。

网络要点:http://vswebessentials.com/

67

的Visual Studio 2012(与ASP.NET和Web Tools安装2012.2 RC)支持此natively

Visual Studio 2013以上版本具有此内置功能。

Visual Studio Paste JSON as Classes screenshot (图片提供:robert.muehsig

+3

我认为这个解决方案是最好的,因为你不需要外部程序! –

+0

+1我比较喜欢这个答案。谁会希望第三方工具可以在VS中使用此功能;) – Bharath

+0

粘贴之前[here](http://superuser.com/questions/777213/copy-json-from-console-log-in-developer-tool - 从剪贴板)是**解决方案将JSON从开发人员工具中的console.log **复制到剪贴板。希望有帮助。 – stom