精华内容
下载资源
问答
  • 根据jsonschema生成json
    2021-01-19 16:01:24

    生成方式

    根据JsonSchema的各层级的key,用下划线拼接

        private static final String SCHEMA_TYPE = "type";
        private static final String SCHEMA_TYPE_OBJECT = "object";
        private static final String SCHEMA_TYPE_ARRAY = "array";
        private static final String SCHEMA_TYPE_NULL = "null";
        private static final String SCHEMA_TYPE_INTEGER = "integer";
        private static final String SCHEMA_TYPE_NUMBER = "number";
        private static final String SCHEMA_PROPERTIES = "properties";
        private static final String SCHEMA_ITEMS = "items";
        private static final String SCHEMA_REQUIRED = "required";
        private static final Map<String, String> typeConversion = new HashMap<>(16);
        static {
            typeConversion.put("string", " String ");
            typeConversion.put("integer", " Int64 ");
            typeConversion.put("boolean", " String ");
            typeConversion.put("number", " Decimal64(8) ");
        }
    
    
     /**
         * 查询JSON文件需要创建的所有的表
         * @param source 数据源命名 用于拼接根节点表名
         * @param scene 数据来源场景 用于拼接根节点表名
         * @param schema jsonSchema
         * @return
         */
        public static Set<String> jsonSchema2CreateTableName(String source, String scene, String schema) {
            JSONObject schemaNode = JSON.parseObject(schema);
            String nodeType = schemaNode.getString(SCHEMA_TYPE);
            String rootTableName = source + "_" + scene;
            if (SCHEMA_TYPE_OBJECT.equals(nodeType)) {
                return jsonObj2CreateTableName(rootTableName, schemaNode.getJSONObject(SCHEMA_PROPERTIES));
            } else if (SCHEMA_TYPE_ARRAY.equals(nodeType)) {
                return jsonArray2CreateTableName(rootTableName, schemaNode.getJSONObject(SCHEMA_ITEMS));
            }
            throw new BusinessErrException("Unable to resolve JSONSchema!");
        }
    
        private static Set<String> jsonObj2CreateTableName(String tableName, JSONObject properties) {
            if (properties == null) {
                return new HashSet<>();
            }
            Set<String> result = new HashSet<>();
            Set<String> keySet = properties.keySet();
            for (String key : keySet) {
                JSONObject typeObj = properties.getJSONObject(key);
                String type = typeObj.getString(SCHEMA_TYPE);
                if (StringUtils.isEmpty(type)) {
                    continue;
                }
                switch (type) {
                    case SCHEMA_TYPE_OBJECT:
                        result.addAll(jsonObj2CreateTableName(tableName + "_" + key, typeObj.getJSONObject(SCHEMA_PROPERTIES)));
                        continue;
                    case SCHEMA_TYPE_ARRAY:
                        result.addAll(jsonArray2CreateTableName(tableName + "_" + key, typeObj.getJSONObject(SCHEMA_ITEMS)));
                }
            }
            result.add(tableName);
            return result;
        }
    
    
        private static Set<String> jsonArray2CreateTableName(String tableName, JSONObject items) {
            if (items == null) {
                return new HashSet<>();
            }
            String type = items.getString(SCHEMA_TYPE);
            if (StringUtils.isEmpty(type)) {
                return new HashSet<>();
            }
            switch (type) {
                case SCHEMA_TYPE_ARRAY:
                    return jsonArray2CreateTableName(tableName, items.getJSONObject(SCHEMA_ITEMS));
                case SCHEMA_TYPE_OBJECT:
                    return jsonObj2CreateTableName(tableName, items.getJSONObject(SCHEMA_PROPERTIES));
                case SCHEMA_TYPE_NULL:
                    return new HashSet<>();
                default:
                    throw new BusinessErrException("Unrecognized type:" + type);
            }
        }

     

    更多相关内容
  • JSON Schema 生成库——json-schema-inferrer(java版).rar
  • Java JSON 模式生成器 使用 Jackson 从 Java 类创建 JSON 模式(草案 6、草案 7 或草案 2019-09)。 该项目包括: (你唯一需要开始的东西) 为了您的方便,一些模块捆绑了标准配置: – 从jackson注释(例如...
  • jsonschema2pojo从JSON模式(或示例JSON)生成Java类型,并可以注释这些类型以便与Jackson 1.x,Jackson 2.x或Gson进行数据绑定。 注意:在0.5.1和1.0.0之间存在重大变化。 检查。 1.0.0 Alpha,Beta和最终版本中...
  • 什么python-jsonschema-objects提供对JSON模式的基于类的自动绑定,以供在python中使用。 请参阅以查看受支持的关键字例如,给定以下架构: { "title": "Example Schema", "type": "object", "properties": { ...
  • JSON 模式 Bean 生成器 从提供的 JSON Schema 对象生成 Java Beans(最终以各种形式)的生成器。 目标 可定制的类型映射 多种输出格式(POJO、AutoBeans 等) 生成的代码是人类“可读的”
  • 进行JSON模式反射 该包可用于通过反射从Go类型生成。 支持任意复杂的类型,包括... Name string `json:"name" jsonschema:"title=the name,description=The name of a friend,example=joe,example=lucy,defau
  • JSON Schema 生成 Markdown 或 AsciiDoctor 文档 例子 这个 JSON 架构: { " $schema " : " http://json-schema.org/draft-03/schema " , " title " : " example " , " type " : " object " , " description...
  • react-jsonschema-table 简单的用法通过inifnite滚动来响应组件样式表,以消耗大量数据并使用JSONSchema作为数据结构进行行编辑。 工作正在进行中 ! 安装 npm install --save react-jsonschema-table 简单用法 ...
  • 最简单的安装方法是pip install jsonschema2db 文献资料 有关如何使用jsonschema2db的更多信息,请参见! 其他 通过在Docker内部运行Postgres服务器的完全集成测试对代码进行了测试。 要运行测试,请运
  • 通过json报文,自动生成schema
  • vue-jsonschema-form [WIP:未准备好] 基于JSON模式表单生成器 概述 该项目的目的是创建一个简单的Vue组件,该组件能够根据构建HTML表单,并且默认情况下使用语义。 入门 克隆此存储库,安装依赖项并使用dev命令...
  • a form generator based on jsonschema for vue3 Project setup npm install npm run serve npm run build npm run test:unit npm run lint API 设计 <JsonSchemaForm schema={schema} value={value} xss=removed ...
  • JSON 架构默认值 从 JSON Schema 中的默认值生成 JSON 对象适用于节点和浏览器。安装新产品经理npm install json-schema-defaults 凉亭bower install json-schema-defaults 手动的下载用法CommonJS (node.js) var ...
  • 因为我需要可视地创建表单,才能使用react-jsonschema-form语法将其导出到另一个系统 演示版 它是如何工作的? 非常简单,如果您知道react-jsonschema-form是如何工作的,您将对代码感到满意。 安装 $ npm install...
  • go-jsonschema是从定义生成Go数据类型的工具。 该工具生成与架构中的定义相对应的Go数据类型和结构,以及根据架构的验证规则验证输入JSON的解编代码。正在安装二进制安装:获取版本。 来自源:为了获得正确的依赖性...
  • JsonSchema转JSON

    2022-08-08 18:17:56
    代码JsonSchema转JSON。

    先安装所需要的依赖

    yarn add underscore json-schema-faker
    

    使用

    test(JsonsSchema格式)是假数据
    const _ = require('underscore');
    const mwapi = require('../utils/schema2json');
     @Get('/schema2json')
      async schema2json() {
        const test:any = {
          schema: {
            $schema: 'http://json-schema.org/draft-04/schema#',
            type: 'object',
            properties: {
              code: { type: 'string', mock: { mock: '555' } },
              arr: {
                type: 'object',
                properties: {
                  item1: { type: 'string', mock: { mock: 'i1' } },
                  item2: { type: 'string', mock: { mock: '@string' } },
                },
                description: '数组',
                required: ['item1', 'item2'],
              },
            },
            required: ['arr'],
          }
        };
        let schema = test.schema;
        let required = test?.required;
        console.log('mwapi',mwapi)
        let res = mwapi.schemaToJson(schema, {
          alwaysFakeOptionals: _.isUndefined(required) ? true : required,
        });
        console.log('***********',res)
      /**res=
      
    	{
    		"arr": {
    			"item1": "i1",
    			"item2": "DjTwg^"
    		},
    		"code": "5556"
    	}
    */
        return res
      }
    

    schema2json.js

    const jsf = require('json-schema-faker');
    //这里执行mock字段 使用mockjs去执行
    jsf.extend('mock', function () {
      return {
        mock: function (xx) {
          return Mock.mock(xx);
        }
      };
    });
      /** 如果不加上面一段res会响应如下
    	{
    		"arr": {
    			"item1": "fugiat sit incididunt magna",
    			"item2": "enim minim aute"
    		},
    		"code": "quis eiusmod"
    	}
    	*/
    
    
    const defaultOptions = {
      failOnInvalidTypes: false,
      failOnInvalidFormat: false
    };
    exports.schemaToJson = function (schema, options = {}) {
      Object.assign(options, defaultOptions);
    
      jsf.option(options);
      let result;
      try {
        result = jsf(schema);
      } catch (err) {
        result = err.message;
      }
      jsf.option(defaultOptions);
      return result;
    };
    
    展开全文
  • 从您的 JSON 文档生成 JSON 模式。 安装 将此行添加到应用程序的 Gemfile 中: gem 'schemize' 然后执行: $ bundle 或者自己安装: $ gem install schemize 用法 TODO:在这里写使用说明 贡献 分叉它( ) ...
  • java解析json-schema随机生成json

    一、需求

            1、给出特定格式json-schema,生成随机json串

            2、json串,目录结构按json-schema定义

            3、使用java开发语言

            4、不需要提供页面,能输出随机json串即可(控制台打印)

            5、json-schema中的结构可能存在多级,属性不确定,但结构统一

    二、示例

    1、json-schema

    {
    	"definitions": {},
    	"$schema": "http://json-schema.org/draft-07/schema#", 
    	"$id": "https://example.com/object1646817236.json", 
    	"title": "Root", 
    	"type": "object",
    	"required": [
    		"city",
    		"number",
    		"gov",
    		"user"
    	],
    	"properties": {
    		"city": {
    			"$id": "#root/city", 
    			"title": "City", 
    			"type": "string",
    			"default": "",
    			"minLength": 1,
                "maxLength": 40
    		},
    		"number": {
    			"$id": "#root/number", 
    			"title": "Number", 
    			"type": "integer",
    			"minLength": 1,
                "maxLength": 6,
    			"default": 0
    		},
    		"gov": {
    			"$id": "#root/gov", 
    			"title": "Gov", 
    			"type": "object",
    			"required": [
    				"adrress",
    				"personnum"
    			],
    			"properties": {
    				"adrress": {
    					"$id": "#root/gov/adrress", 
    					"title": "Adrress", 
    					"type": "string",
    					"default": "",
    			        "minLength": 1,
                        "maxLength": 40
    				},
    				"personnum": {
    					"$id": "#root/gov/personnum", 
    					"title": "Personnum", 
    					"type": "integer",
    			        "minLength": 1,
                        "maxLength": 8,
    					"default": 0
    				}
    			}
    		},
    		"user": {
    			"$id": "#root/user", 
    			"title": "User", 
    			"type": "array",
    			"default": [],
    			"items":{
    				"$id": "#root/user/items", 
    				"title": "Items", 
    				"type": "object",
    				"required": [
    					"name",
    					"age"
    				],
    				"properties": {
    					"name": {
    						"$id": "#root/user/items/name", 
    						"title": "Name", 
    						"type": "string",
    						"default": "",
    			            "minLength": 1,
                            "maxLength": 40
    					},
    					"age": {
    						"$id": "#root/user/items/age", 
    						"title": "Age", 
    						"type": "integer",
    			            "minLength": 1,
                            "maxLength": 4,
    						"default": 0
    					}
    				}
    			}
    
    		}
    	}
    }

    2、预期结果

    {
    	"city":"chicago",
    	"number":20,
    	"gov":{
    		"adrress":"chicago",
    		"personnum":10
    	},
    	"user":[
    		{
    			"name":"Alex",
    			"age":20
    		}
    	]
    }

    三、解决方案

    1、方案说明

    1)度娘搜索的解决方案都不满足,大多数是固定schema,即字段固定

    2)csdn上有将schema转java实体bean,也不能拿来用

    3)最终决定自行实现

    4)考虑快速实现问题,使用maven管理,使用hutool解决常规判断

    2、方案依赖

    1)jdk8

    2)idea

    3)maven项目

    4)阿里maven库

    5)hutool工具依赖

     3、方案思路

    1)分析结构

            属性定义: properties

            属性类型: type

            取值范围: minLength与maxLength

    2)抽取类型,有:object,string,integer,number,array

    3)处理分析

            object: 拥有子节点

            string:生成随机字符串

            integer:生成随机数

            number: 与integer一致

            array:数组,需要单独处理,解析后类型参照string,integer

    4)使用递归处理子集结构

     4、核心代码处理(示例图)

     5、结果示例图

     6、源码不免费哦

    csdn资源-java解析json-schema,生成随机json

    展开全文
  • json_schema_generator, 来自任何json源的简单json模式生成JSON模式生成器它是来自任何json源的json模式生成器。用法请参见使用情况。示例因为你拥有一个具有上述结构的json文件: { "item_1": "string_value_1",...
  • json-from-schema基于架构生成随机JSON。 用法 var jfs = require ( 'json-from-schema' ) ; var schema1 = { id : 'http://www.example.com/herp#' , type : "object" , properties : { someString : { type : ...
  • 一个根据Clojure规范生成JSON模式的库。 它提供了实用程序功能,可将Clojure规范和规范都转换为。 安装 要包含json-schema ,请将以下内容添加到您的:dependencies : [com.furkanbayraktar/json-schema "0.1.0"] ...
  • json-schema-codegen 从 JSON 模式文件生成代码。 目录 介绍 这是一个命令行工具,用于获取文件并自动生成代码。 例如这个json-schema定义: { " $schema " : " http://json-schema.org/draft-04/schema# " , ...
  • 基于Vue的JSON可视化编辑器,通过定义 JSON Schema 直接生成 UI 界面
  • jsonschema-2-markdown 该模块从具有格式配置的JSON模式生成markdown文件。 是一个词汇表,可用于注释和验证JSON文档。 我没有实现完整的规范,该模块的主要目标是将架构转换为降价格式。 要求 npm版本5或更高...
  • 公共API仅包含一个函数: hypothesis_jsonschema.from_schema ,该函数采用JSON模式并返回允许的JSON对象的策略。 from hypothesis import given from hypothesis_jsonschema import from_schema @ given ( from_...
  • json-schema-editorJSON...data、event、codearea、htmlarea、text-editor()、quantity、box-style)拖拽排序复制功能复杂嵌套高级配置功能支持字段联动在线Demo:JSONSchema效果图:备注:JSONSchema仅用于生成结构化
  • var jsonSchema = { "title": "User", "properties": [ { "title": "gender", "description": "", "type": "string", "label": "Geslacht", "enum": [ "M", "F", "" ], ...
  • 一个使用 React 和 Bootstrap 从 JSON Schema 生成 html 表单的简单库。 安装 安装reformation-js: npm install reformation-js 形式 Form 组件是reformation-js的主要接口。 Struts 类型 必需的 描述 schema ...
  • 从Protobuf到JSON-Schema编译器这将采用protobuf定义并将其转换为JSONSchemas,可用于动态验证JSON消息。 对于使用ProtoBuf定义数据但将JSON... protoc-gen-jsonschema设计为像其他任何proto生成器一样运行。 以下示例

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,809
精华内容 19,523
热门标签
关键字:

根据jsonschema生成json