JSON 转 C# 生成器有助于消除样板代码,但其输出仅作为起点,而非最终架构。
在交付生成的模型之前,我会审查以下五点:
1. 缺失属性与显式空值
缺失的 JSON 属性与值为 null 的属性可能具有不同的含义。生成的 C# 模型应反映该字段在您的应用程序中是必需的、可空的还是可选的。
2. 可能超出 Int32 范围的整数
示例值 42 并不能证明该字段始终适合使用 int 类型。标识符、计数器和时间戳可能需要使用 long、decimal 甚至 string 类型。
3. 具有更强领域类型的字符串
ISO 时间戳、通用唯一识别码(UUID)和货币金额等值通常以字符串形式出现。如果协议支持,请考虑使用 DateTimeOffset、Guid 或 decimal 类型。
4. 空数组无法揭示元素类型
[] 无法为转换器提供关于集合内容的任何证据。在生成之前添加一个代表性项,或者审查推断出的后备类型。
5. 记录(Record)与类(Class)的语义
记录(Record)适用于面向值的数据传输模型。当身份标识、可变性或框架行为至关重要时,类(Class)通常是更好的选择。
我构建了 DevCrate 的 JSON 转 C# 转换器,以使初步转换快速且私密。转换在浏览器本地进行,因此 JSON 数据不会发送到转换 API:
https://devcrate.org/tools/json-to-csharp/
生成的代码仍然值得进行人工审查。
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。