通过 json 生成 C# 对象类文件
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
CodeDomDemo
CodeDomDemo.sln
README.md

README.md

通过 JSON 生成 Csharp 对象类文件

最近一直做 API 接口相关工作,经常需要将 json 转换为 C# 对象。传统的做法手动式,对应 json 数据,一个字段一个字段对,写出对应的 C# 对象,方便做反序列化。这种方式费时费力,而且很机械,因此有这个转换 Demo。

过程

  • 如何将 json 数据分类。

    刚开始尝试用正在表达式来解析 json ,鉴于 json 的结构想到正则表达式中的平衡组/递归匹配,由于正则表达还没有达到一定的水准,这个方式尝试失败。

  • 选用 System.Json

System.Json .NET Framework 中 Silverlight 类库下,可以单独引用,属于轻量级的 json 解析类库。

这个类库很符合我的要求,可以轻松的遍历 json 的 key,根据 key 推算出类型。

  • 代码生成

    代码生成选用 .NET 平台提供的 System.CodeDom 结合 CodeSnippetTypeMember 生成格式化好的 cs 文件。

现状

目前的代码可以针对大多数简单结构的 json 文件转换。代码中对异常的处理,和特殊情况的考虑还不够。

版本

历史改进

2015-10-27

  • 修改了 json 存在 null 对象时 bug .
  • 添加生成文件的目录路径
  • 重构组织代码结构方法

2016-02-02

  • 将简单数组直接转换为数组 eg: [1,2,3,4]=====> int[]. 之前是List集合
  • 将空对象转换为 object 类型的属性 之前直接生成一个空类