摘要

这周在园子看到一篇介绍JsonCSharpClassGenerator这个工具的文章,感觉挺实用的,在现在项目中json用的是最多的,所以在转换对应的类的时候,确实挺频繁,所以就研究了一下这个工具,确实很好用。这里记录一下,以后也方便去查找。

JSON C# Class Generator

这是一个开源的项目,项目地址:JSON C# Class Generator

下载之后解压,如下图所示

.net json 转类 json转成类_.net json 转类

支持将json转为下面三种语言

.net json 转类 json转成类_字段_02

Namespace:生成的类的命名空间。

Main Class Name:类文件名称。

Target Folder:类文件保存位置。

Language:支持生成的语言。

Secondary Class:二级类。

Use nested Class:使用嵌套类。

Use the same namespace:使用相同的命名空间。

Use the different namespace:使用不同的命名空间。

Member generator:成员生成。

Properties:属性。

Fields:字段。

Visibility:访问限制。

Internal:内部类。

Public:公共类。

Convert to PascalCase:转换为pascalcase命名格式。

一个例子

有下面的一个班级的json字符串

{
    "id": 1,
    "name": "信管3班",
    "students": [
        {
            "id": 1,
            "name": "wolfy1"
        },
        {
            "id": 1,
            "name": "wolfy1"
        },
        {
            "id": 1,
            "name": "wolfy1"
        },
        {
            "id": 1,
            "name": "wolfy1"
        },
        {
            "id": 1,
            "name": "wolfy1"
        },
        {
            "id": 1,
            "name": "wolfy1"
        }
    ]
}

班级中对应一个学生数组。大概猜测对应的类应该是这样的。

Class MyClass
{
    public int id;
    public string name;
    public List<student> students;
}

我们验证一下

.net json 转类 json转成类_.net json 转类_03

生成的类文件

.net json 转类 json转成类_字段_04

.net json 转类 json转成类_.net json 转类_05

.net json 转类 json转成类_.net json 转类_06

确实很方便。里边使用Json.Ne的JsonProperty特性t为属性使用序列化时候的使用别名。跟原来的json字符串中的字段名称保持了一直。