从json模式定义自动生成普通的旧对象模型+自定义json序列化/反序列化代码。
js2model的Python项目详细描述
概述
JS2模型使得使用JSON数据作为简单的老目标C、C++或Python对象更容易。
json作为一种数据协议是简单、方便、无处不在的。在javascript中工作时,有效的json字符串可以是 只需评估以生成本机数据实例。当用其他语言工作时,事情就不那么简单了。平常的 方法是使用一个通用的特定于语言的json解析器,它生成一个由 字典,数组,字符串和数字。你可以用这些一般的结构,以降低效率为代价, 没有类型安全性、更难维护的代码等。您可以通过手动滚动一些 将数据加载到本机自定义类实例中的后处理逻辑—这通常是一项乏味的任务, 容易出错,而且很难维护。
js2model通过自动 生成模型类和序列化/反序列化代码。JS2模型使用 JSON Schema要生成源的json数据的定义 包含并与项目其余部分一起生成的文件。
语言
该脚本旨在针对多种输出语言。ObjuleC和C++都是在框外支持的。 未来的版本将添加其他语言,以及支持添加自己的语言模板。
文档
您可以查看文档here
json模式
<>您可能没有JSON数据的现有JSON模式定义。理论上,创建模式是 只需根据JSON Schema specifications创建json文件。 事实上,根据您的复杂性,手动创建模式定义可能是繁琐的和时间密集的。 数据。幸运的是,有更好的方法。GenSON是一个脚本 将从一个或多个json文件自动生成json模式。生成的模式定义可能需要一些调整, 但根森会为你节省相当多的时间和精力。用法
usage: js2model [-h] [-l LANG] [--prefix PREFIX] [--namespace NAMESPACE] [--rootname ROOTNAME] [--novalidate] [-o OUTPUT] [--implements IMPLEMENTS] [--super SUPER] [--import IMPORT_FILES] [-v] [--no-deserialize] [--no-dependencies] FILES [FILES ...] Generate native data models from JSON Schema definitions. positional arguments: FILES JSON Schema files for model generation optional arguments: -h, --help show this help message and exit -l LANG, --lang LANG Target language. Supported values: objc, cpp (default: objc) --prefix PREFIX prefix for class names (default: TR) --namespace NAMESPACE parent namespace for generated code (default: tr) --rootname ROOTNAME Class name for root schema object (default: base name of file) --novalidate Skip schema validation -o OUTPUT, --output OUTPUT Target directory of output files --implements IMPLEMENTS Comma separated list of interface(s)|protocol(s) supported by the generated classes --super SUPER Comma separated list of super classes. Generated classes inherit these --import IMPORT_FILES Comma separated list of files to @import for Objective C source files. -v, --verbose Print actions to STDOUT. --no-deserialize Do not generate deserialization code. Implies --no- dependencies. --no-dependencies Do not include dependencies in output.