精华内容
下载资源
问答
  • jsonschema生成工具
    2020-12-22 20:01:02

    介绍

    JSON-SCHEMA 是一种基于 JSON 格式定义 JSON 数据结构的规范,有如下特性:

    描述现有数据格式。

    干净的人类和机器可读的文档。

    完整的结构验证,有利于自动化测试。

    完整的结构验证,可用于验证客户端提交的数据。

    json-schema 演示

    {

    "type": "object",

    "properties": {

    "id": {

    "type": "integer"

    },

    "name": {

    "type": "string"

    },

    "price": {

    "type": "number",

    "minimum": 0,

    "exclusiveMinimum": true

    }

    },

    "required": ["id", "name"]

    }

    Why

    作者为什么开发一个 easy-Json-schema 工具呢,就是为了简化 json-schema 定义,大家看看上面的 json 定义,一个很简单结构的 json 用了非常多的字段定义,书写起来非常麻烦。

    easy-json-schema

    如果用 easy-json-schema 定义上面的 json 结构,是非常清晰和易用的。

    {

    "*id": "integer",

    "*type": "string",

    "price":{

    "type": "number",

    "minimum": 0,

    "exclusiveMinimum": true

    }

    }

    感兴趣的朋友可以关注下

    更多相关内容
  • Java JSON 模式生成器 使用 Jackson 从 Java 类创建 JSON 模式(草案 6、草案 7 或草案 2019-09)。 该项目包括: (你唯一需要开始的东西) 为了您的方便,一些模块捆绑了标准配置: – 从jackson注释(例如...
  • 通过json报文,自动生成schema
  • JSON 模式 Bean 生成器 从提供的 JSON Schema 对象生成 Java Beans(最终以各种形式)的生成器。 目标 可定制的类型映射 多种输出格式(POJO、AutoBeans 等) 生成的代码是人类“可读的”
  • JSON Schema 生成库——json-schema-inferrer(java版).rar
  • 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模式表单生成器 概述 该项目的目的是创建一个简单的Vue组件,该组件能够根据构建HTML表单,并且默认情况下使用语义。 入门 克隆此存储库,安装依赖项并使用dev命令运行。 # Clone this repository git ...
  • json_schema_generator, 来自任何json源的简单json模式生成器 JSON模式生成器它是来自任何json源的json模式生成器。用法请参见使用情况。示例因为你拥有一个具有上述结构的json文件: { "item_1": "string_value_1",...
  • 这是“ Json Schema”的可视化构建,可导出为生成的“ Json Schema”而生成的“ Json Schema”,然后将该模式的结构粘贴到您的 为什么? 因为我需要可视地创建表单,才能使用react-jsonschema-form语法将其导出...
  • 基于Vue的JSON可视化编辑,通过定义 JSON Schema 直接生成 UI 界面
  • JSON模式生成器 规格: : 安装 npm install --save jsg07 用法 const jsg = require ( 'jsg07' ) ; let schema = jsg . infer ( { name : 'Mike' , male : true , tags : [ 'Gentle' , 'Nice' ] } ) ; console...
  • 工具生成与架构中的定义相对应的Go数据类型和结构,以及根据架构的验证规则验证输入JSON的解编代码。正在安装二进制安装:获取版本。 来自源:为了获得正确的依赖性,建议启用Go模块的Go 1.11或更高版本。 安装:...
  • 公共API仅包含一个函数: hypothesis_jsonschema.from_schema ,该函数采用JSON模式并返回允许的JSON对象的策略。 from hypothesis import given from hypothesis_jsonschema import from_schema @ given ( from_...
  • json-schema-inferrer 是一个json schema的java库,用来:根据json文档,生成对应的json schema文档。github地址:https://github.com/saasquatch/json-schema-inferrer 在线演示:...

    介绍

    json-schema-inferrer 是一个json schema的java库,用来:根据json文档,生成对应的json schema文档

    特点:

    • 支持输入多个json文档,经过计算后输出一个统一的json schema;
    • 支持多种生成策略,例如:required、array length...

    示例

    1)mavne pom.xml

    <dependency>
    		    <groupId>com.github.saasquatch</groupId>
    		    <artifactId>json-schema-inferrer</artifactId>
    		    <version>0.1.1</version>
    </dependency>

    当前使用的是0.1.1版本。也可以在github 上的release上找对应的版本:https://github.com/saasquatch/json-schema-inferrer/releases 

    说明:json-schema-inferrer需要java8及以上,依赖Jackson 和FindBugs (JSR305),如果在生成过程中使用了FormatInferrers,Commons Validator 需要被引入。

    2)示例代码:

    public class Test {
    
        private static final ObjectMapper mapper = new ObjectMapper();
        private static final JsonSchemaInferrer inferrer = JsonSchemaInferrer.newBuilder()
    		      .setSpecVersion(SpecVersion.DRAFT_04)
    		      .setAdditionalPropertiesPolicy(AdditionalPropertiesPolicies.noOp())
    		      .setRequiredPolicy(RequiredPolicies.noOp())
    		      .build();
    
        private static String json1 = "{\"a\":0,\"b\":[1,2]}";
    
    
        public static void main(String... str) {
            ObjectNode inferForSample = inferrer.inferForSample(mapper.readTree(json1));
    		System.out.println(inferForSample.toPrettyString());
            
        }
    }

    输出:

    {
      "$schema" : "http://json-schema.org/draft-04/schema#",
      "type" : "object",
      "properties" : {
        "a" : {
          "type" : "integer"
        },
        "b" : {
          "type" : "array",
          "items" : {
            "type" : "integer"
          }
        }
      }
    }

    说明:在生成json schema时,可以通过JsonSchemaInferrer 来进行配置。例如:是否required...

    3)示例2:

    public class Test {
    
        private static final ObjectMapper mapper = new ObjectMapper();
        private static final JsonSchemaInferrer inferrer = JsonSchemaInferrer.newBuilder()
    		      .setSpecVersion(SpecVersion.DRAFT_04)
    		      .setAdditionalPropertiesPolicy(AdditionalPropertiesPolicies.noOp())
    		      .setRequiredPolicy(RequiredPolicies.noOp())
    		      .build();
    
        private static String json1 = "{\"a\":0}";
        private static String json2 = "{\"a\":,\"1\"}";
    
        public static void main(String... str) {
           ObjectNode inferForSamples2 = inferrer.inferForSamples(Arrays.asList(mapper.readTree(json1),mapper.readTree(json2)));
    		System.out.println(inferForSamples2.toPrettyString());
            
        }
    }

    输出:

    {
      "$schema" : "http://json-schema.org/draft-04/schema#",
      "type" : "object",
      "properties" : {
        "a" : {
          "type" : [ "string", "integer" ]
        }
      }
    }

    说明:json-schema-inferrer支持将不同的json作为输入,该库会自动进行合并,然后生成一个统一的jsonschema

    展开全文
  • go-jsonschema是一个从JSON Schema定义生成Go数据类型的工具
  • Vue基于JSON Schema生成表单和数据校验

    千次阅读 2021-05-17 11:32:47
    基于Vue.js、JSON Schema和ElementUi快速生成表单,支持自定义组件,支持自定义错误提示配置和校验规则... 源码:vue-json-schema-form github 演示表单:vue-json-schema-form Demo 生成表单如下图: JSON ...

    基于 Vue.jsJSON Schema 和 ElementUi 快速生成表单,支持自定义组件,支持自定义错误提示配置和校验规则...

    生成表单如下图:

    JSON Schema 是什么

    JSON Schema 定义了一套规范用于描述你的数据格式,包含对数据结构的描述和约束等。各种开发语言都有相应的类库实现对schema的校验支持。

    一个 JSON Schema 的例子:

    {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "type": "object",
        "required": [
            "userName"
        ],
        "properties": {
            "userName": {
                "type": "string",
                "title": "UserName",
                "default": "Name"
            },
            "age": {
                "type": "integer",
                "title": "Age",
                "maximum": 80,
                "minimum": 16
            },
            "bio": {
                "type": "string",
                "title": "Bio",
                "minLength": 10
            }
        },
        "additionalProperties": false
    }

    如上 schema 描述了一个 object

    • 包含 userNameagebio 三个属性
    • userName 为 string 类型且必须定义
    • age 为 integer 类型且在 16 到 80 之间
    • bio 为不小于 10 个长度的 string
    √ 正确的例子
    {
        userName: 'name',
        age: 18
    }
    × 错误的例子 - ( bio 长度不小于10个)
    {
        userName: 'name',
        age: 18,
        bio: '嘿嘿嘿'
    }

    了解更多可以查看JSON Schema官方文档:https://json-schema.org/under...

    JSON Schema的表单生成

    通过 JSON Schema 生成form表单,数据校验校验基于 ajv,只需要一个必须的 schema 参数即可生成完整可校验的form表单。

    • JSON Schema title 属性作为 form表单的标题
    • JSON Schema description 属性作为表单的描述
    • 可通过 uiSchema 配置个性化的视图显示,也可以直接配置在 JSON Schema 中
    • 可通过 errorSchema 配置表单校验错误文案,也可以直接配置在 JSON Schema 或者 uiSchema 中
    • 支持多语言
    • 支持自定义组件,自定义样式
    • ...
    详细的可以查看上方 github 链接

    表单渲染流程大致如下图,基于组件递归的形式,逐级渲染

     

    一个简单的用户信息录入例子:

    <template>
        <vue-form
            v-model="formData"
            :schema="schema"
        >
        </vue-form>
    </template>
    
    <script>
    import VueForm from '@lljj/vue-json-schema-form';
    
    export default {
        name: 'Demo',
        components: {
            VueForm
        },
        data() {
            return {
                formData: {},
                schema: {
                    type: 'object',
                    required: [
                        'userName',
                        'age',
                    ],
                    properties: {
                        userName: {
                            type: 'string',
                            title: '用户名',
                            default: 'Liu.Jun',
                        },
                        age: {
                            type: 'number',
                            title: '年龄'
                        }
                    }
                }
            };
        }
    };
    </script>

    即可生成如下表单:

    JSON Schema表单所解决的问题

    遵循 JSON Schema 规范,可以很方便的做到跨端数据校验,这在处理一些前端可视化编辑的场景是非常有用的。

    比如:

    1. 在我们做一个可视化的活动编辑页时,当你在新增一个活动版块时,需要 板块配置信息录入板块预览组件服务端配合做数据校验 这三个部分。
    2. 开发者重点关注 模块预览组件 也就是新增的模块长什么样,这里使用 JSON Schema 生成表单可以很好的解决 板块配置信息录入服务端配合做数据校验 这两个问题。
    3. 新增版块定义好 JSON Schema 数据即可生成配置表单,同时把 JSON Schema 给到后端系统即可做到服务端数据校验(这一步可以在构建或者发布流程环节来推给后端)

    最后

    开发这个的目的是为了做一套可视化店铺装修系统,在考虑对页面数据配置和校验过于繁琐如何简化时所采用的方案,但并未找到太合适的开源库,所以就自己写了一个。

    另外我在 github 项目仓库中包含了一个开箱即用的店铺装修可视化编辑的展示页,演示效果:vue-json-schema-form店铺装修编辑器

    原文:https://segmentfault.com/a/1190000025168152?utm_source=tag-newest

     

    展开全文
  • 一个使用 React 和 Bootstrap 从 JSON Schema 生成 html 表单的简单库。 安装 安装reformation-js: npm install reformation-js 形式 Form 组件是reformation-js的主要接口。 Struts 类型 必需的 描述 schema ...
  • 用于Rails 3+的验证器和生成器 安装 将此行添加到您的应用程序的Gemfile中: gem 'json_schema_rails' 然后执行: $ bundle 或将其自己安装为: $ gem install json_schema_rails 用法 生成架构文件 您可以...
  • 流利的TypeScript JSON架构生成器 该构建器利用TypeScript来提供具有全面IntelliSense支持的Fluent JSON Schema构建器。 您无需担心先了解JSON Schema规范,而在输入代码时进行探索。 Builder打包为ECMAScript5。...
  • 这是一个命令行工具,用于获取文件并自动生成代码。 例如这个json-schema定义: { " $schema " : " http://json-schema.org/draft-04/schema# " , " title " : " Test " , " type " : " object " , " ...
  • 1 定义 Json Schema是用来描述Json的语言。...通过有右图的JsonSchema,来描述左图的Json。type规定了字段的类型 关键字-类型 Type type取值 参数说明 {“type” : “null”} 可选值:null {“type” : “b

    定义

    Json Schema是用来描述Json的语言。

    Json Schema定义了一套词汇和规则,这套词汇和规则用来定义Json元数据,且元数据也是通过Json数据形式表达的。Json元数据定义了Json数据需要满足的规范,规范包括成员、结构、类型、约束等。

    举个例子:
    通过有右图的JsonSchema,来描述左图的Json。type规定了字段的类型
    在这里插入图片描述

    关键字-类型 Type

    type取值参数说明
    {“type” : “null”}可选值:null
    {“type” : “boolean”}可选值:true/false
    {“type”:“string”}长度:minLength, maxLength
    正则匹配:pattern
    格式:format 可选值:“date”, “time”, “date-time”, “email”, “hostname”
    {“type” : “number”}
    {“type”: “integer”}
    要求是特定值的倍数:multipleOf    举例:"multipleOf" : 10
    范围:minimum, maximum, exclusiveMinimum, exclusiveMaximum (开区间最大值)
    {“type” : “array”}元素类型:items:可以是对象{"type": "string"}(元素统一数据格式),也可以是格式数组[{"type": "string"},{"type": "number"}](元素格式必须按顺序匹配)
    是否允许额外的元素:additionalItems 可选值: true/false (仅items为数组才起效)
    个数:minItems, maxItems
    元素是否唯一:uniqueItems 可选值:true/false
    {“type” : “object”}对象成员:properties 格式:Json-Schema
    对象成员:patternProperties 利用正则批量命名对象成员 举例:"^S_": { "type": "string" } (key值是正则)
    必填成员:required 格式:Array(String)
    依赖关系:dependencies 格式:Object(name: Array(name))
    是否允许额外属性:additionaProperties 可取值:true/false
    个数:minProperties, maxProperties

    逻辑结构

    关键字说明
    allOf格式:Array(Json-Schema)
    类似继承,必须满足所有Json-Schema格式
    anyOf格式:Array(Json-Schema)
    __最少__满足一个Json-Schema格式
    oneOf格式:Array(Json-Schema)
    __只__满足一个Json-Schema格式
    not格式:Array(Json-Schema)
    不能满足任一个Json-Schema格式

    例子参考

    Json Schema简介
    vue测试模板与jsonSchema自动生成elment组件

    成熟插件

    json-schema 编辑器

    1. Json-Schema-Editor-Vue Demo Code Usage (ant ui)

    踩坑:
    注意区分一下ui,比如我element ui的模板用了ant ui 的插件,一直报错failed to resolve directive: ant-xxx

    // install
    npm isntall --save ant-design-vue
    npm install --save json-schema-editor-vue
    
    // main.js
    import Antd from 'ant-design-vue'
    Vue.use(Antd)
    import JsonSchemaEditor from 'json-schema-editor-vue'
    import 'json-schema-editor-vue/lib/json-schema-editor-vue.css'
    Vue.use(JsonSchemaEditor)
    
    // index.vue
    <template>
    	<json-schema-editor v-model="schema"/>
    </template>
    <script>
    data(){
    	return{
    		schema: {
              type: 'object',
              title: 'title',
              properties: {
                field_1: {
                  type: 'string'
                }
              }
            }
    	}
    }
    </script>
    
    1. vue-json-schema-editor-visual Demo Usage (element ui)

    踩坑:
    真正用上了,才发现关闭任一弹框都汇报错“子组件不能改变父组件的值”,遂换之
    mock的下拉框也无法出现==我怎么总在生产bug
    在这里插入图片描述
    访问了对方的IDE,发现这个插件应该自身就有问题:
    在这里插入图片描述

    // 安装
    npm install --save vue-json-schema-visual
    
    // main.js
    import JsonSchemaEditor from 'vue-json-schema-editor-visual';
    Vue.use(JsonSchemaEditor)
    
    // index.vue
    <template>
    	<s-json-schema-editor :schema="schema" />
    </template>
    <script>
    data(){
    	return{
    		schema: {
              type: 'object',
              title: 'title',
              properties: {
                field_1: {
                  type: 'string'
                }
              }
            }
    	}
    }
    </script>
    

    json-schema自动生成表单

    1. Vue-Json-Schema-Form Demo Code Usage (暂未测试)
    展开全文
  • 从Protobuf到JSON-Schema编译器这将采用protobuf定义并将其转换为JSONSchemas,可用于动态验证JSON消息。 对于使用ProtoBuf定义数据但将JSON... protoc-gen-jsonschema设计为像其他任何proto生成器一样运行。 以下示例
  • 有[许多json-schema验证程序],但只有少数生成器。 我发现最好的生成器是一个封闭源Web应用程序,因此您不能将其嵌入。 我找不到任何可嵌入到开源Ruby项目( )中的东西,所以我很快它们一起。 我的快速,-牛的...
  • JSON Schema&表单UI快速生成解析

    千次阅读 2022-04-08 15:46:04
    一、JSON SchemaJSON(JavaScript Object Notation)是一种轻量&常见的数据交换格式,基本的数据的结构就是key-value,具有易于生成和解析的优点,通过JSON可以灵活地表达程序所需要的数据结构。 ​ 但JSON...
  • 在线JSONSchema工具

    2021-12-31 11:50:13
    在线JSONSchema工具 在线JSONSchema工具 JSON:(JavaScript Object Notation, JS对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的...
  • vjsf vuetify-jsonschema-form 创建美观而省力的表单,以输出有效数据。 基于 / / 。 请参阅。开发服务器该文档也可用作开发服务器。 npm installnpm run doc-dev错误报告Bug报告是使用github问题创建的。 文档中的...
  • JSON Schema 校验库——json-schema-validator(java版本).rar
  • 安装npm install @wmfs/json-schema-builder --save用法 const jsonSchemaBuilder = require ( '@wmfs/json-schema-builder' )const jsonSchema = jsonSchemaBuilder . dslToJsonSchema ({ title : 'Pizza' , ...
  • 杰克逊模块该模块支持创建JSON模式(v3) 请注意,由于...用法示例(来自 ) 只需添加一个依赖项(这是从我的gradle配置中获取的) "com.fasterxml.jackson.module:jackson-module-jsonSchema:2.9.0" ,至少对于gradl
  • jsonschema2pojo工具可以从JSON Schema(或示例JSON文件)生成Java类型, 并且可以配置生成Jackson 1.x,Jackson 2.x, Moshi 1.x或者Gson库的注解。 支持将jsonschema2pojo作为Maven插件、Ant任务、命令行工具、 Gradle...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,713
精华内容 15,485
关键字:

jsonschema生成工具