`
flex_莫冲
  • 浏览: 1095642 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

json schema validate

阅读更多
为了检测API返回的数据结构是否正确,刚好chrome的插件postman可以做这件事。其实它用的也是tv4的库来验证。又找了一些开源的验证工具。如下
在线验证工具:
只支持http://json-schema.org/draft-03/schema#
https://json-schema-validator.herokuapp.com/

schema
{
  "$schema": "http://json-schema.org/draft-03/schema#",
  "title": "App",
  "description": "APP LIST",
  "type": "array",  
  "properties":{
  	"appID": {
     	"type": "string",
        "required":true
     },
     "appName":{
         "type": "string",
        "required":true
      },
    "appCaption":{
         "type": "string",
        "required":true
      },
      "icon":{
        "type":"string",
 "required":true
      }
  }
}


json:
[{"appID":"1","appName":"push","appCaption":"push ","icon":""},{"appID":"52","appName":"Sample(\u4e13\u7528)","appCaption":"Sample(\u4e13\u7528)","icon":""},{"appID":"64","appName":"\u65b0\u73af\u5883\u6d4b\u8bd5dddd","appCaption":"\u65b0\u73af\u5883\u6d4b\u8bd5","icon":""}]


dojo json schema:
http://pro.jsonlint.com/


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>dojox.json.schema example</title>

<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.7.0/dojo/dojo.js"
    type="text/javascript"></script>

<script type="text/javascript">

	require(["dojox/json/schema"], function() {
        // Object to validate
        var successObj = { 
            "foo" : "bar"
        };
        var failureObj = {
            "foo" : 1234
        };
        
        // Schema
        var schema = { 
            "type": "object",
            "properties" : {
                "foo" : {
                    "type" : "string"
                },
                "icon":{
                	
                }
            }
        };
        
        // Run validation, which should succeed
        // Change this line to use failureObj to see the failure case
        var result = dojox.json.schema.validate(successObj, schema);
        
        // Check results
        if (result.valid) {
            // Success, do something
            alert("Object is valid");
        } else {
            // Failure - extract the errors array 
            var errorArr = result.errors;
            alert("property : " + errorArr[0].property + "\nmessage :  " 
                + errorArr[0].message);
        }
	});
    
</script>


</head>

<body>
<h1>Example use of dojox.json.schema</h1>
<p>
Due to its use of the Dojo CDN distribution on google.com, this HTML file MUST be accessed through an HTTP server such as Apache.  file:/// URIs won't work.'
</p>
</body>

</html>


在postman中的json validate
tests["Status code is 200"] = responseCode.code === 200;

var data = JSON.parse(responseBody);
tests["status"] = data.status === true;
tests["info"] = data.info === "success";
var appData = data.data;
tests['appCount'] = appData.length === 3;
var schema = {
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "App",
  "description": "APP LIST",
  "type": "object",  
  "properties":{
  	"appID": {
     	"type": "string"
     },
     "appName":{
         "type": "string"
      },
    "appCaption":{
         "type": "string"
      },
      "icon":{
        "type":"string",
        "required":true,
        "pattern":"^http://"
      }
  }
};

$.each(appData, function (i) {
    var app = this;
  tests['appName'+i] = tv4.validate(app, schema); 
})




参考资料:
http://www.asbjornenge.com/wwc/json_schema.html
http://json-schema.org/documentation.html
postman 用的验证工具
https://github.com/geraintluff/tv4
http://www.getpostman.com/docs/
分享到:
评论

相关推荐

    Java bean转换为Json Schema

    这种转换通常通过一些库或工具来实现,例如`json-schema-generator`或`org.jsonschema2pojo`。 首先,了解Json Schema的基本结构是必要的。Json Schema包括但不限于以下字段: 1. `type`:定义数据类型,如`string`...

    JSON Schema 校验库——json-schema-validator(java版本).rar

    JsonSchema schema = factory.getJsonSchema(schemaFile); // 加载Schema ObjectMapper mapper = new ObjectMapper(); JsonNode dataNode = mapper.readTree(dataFile); // 解析JSON数据 ProcessingReport report = ...

    PyPI 官网下载 | jsonschema-0.4.tar.gz

    from jsonschema import validate # JSON数据示例 data = {"name": "Alice", "age": 30} # JSON Schema定义 schema = { "type": "object", "properties": { "name": {"type": "string"}, "age": {"type": ...

    json_validate

    总的来说,`json_validate` 关注的是JSON数据的验证,确保其遵循JSON语法规则,并可能包含了一些高级功能,如自定义验证规则和JSON Schema支持。对于任何处理JSON数据的开发者来说,这类工具都是不可或缺的,它可以...

    Python库 | jsonschema_typed_v2-0.6.4-py3-none-any.whl

    from jsonschema_typed import validate schema = { "type": "object", "properties": { "name": {"type": "string"}, "age": {"type": "integer", "minimum": 0}, }, "required": ["name"], } data = {...

    Newtonsoft.Json.Schema:Json.NET Schema是一个功能强大,完整且易于使用的JSON Schema框架。

    3. **JSON数据验证**:通过提供`JSchema.Validate()`方法,Json.NET Schema能够验证JSON对象是否符合指定的JSON Schema,这有助于确保数据的正确性,防止错误的数据输入。 4. **错误处理**:在验证过程中,如果发现...

    Python库 | hypothesis_jsonschema-0.10.2-py3-none-any.whl

    jsonschema.validate(data, schema) except jsonschema.exceptions.ValidationError as e: print(f"数据不合规: {e}") assert False test_example_data() ``` 在这个例子中,`test_example_data`函数使用`...

    Python库 | jsonschema_pyref-0.1.0-py3-none-any.whl

    Python库`jsonschema_pyref-0.1.0-py3-none-any.whl`是针对Python编程语言的一个组件,主要用于处理JSON Schema验证。JSON Schema是一种JSON格式的规范,用于定义JSON数据的结构和限制,类似于XML Schema。在开发...

    BeanToJsonSchema:Java bean转换为Json Schema

    JSON Schema是一种JSON格式的规范,用于定义JSON数据的结构和限制,可以用来验证JSON数据是否符合规定的要求。`BeanToJsonSchema`项目正是为了解决这个问题,它提供了一个功能,能够将Java Bean对象转换成对应的JSON...

    PyPI 官网下载 | cubicweb-jsonschema-0.1.3.tar.gz

    2. **数据验证**:使用`jsonschema`库提供的函数,如`validate()`,传入JSON数据和对应的Schema进行验证。 3. **处理结果**:如果数据符合Schema,验证会成功;否则,`validate()`函数将抛出一个`ValidationError`...

    Python库 | jsonschema-3.0.0a6-py2.py3-none-any.whl

    如果数据不符合Schema,`jsonschema.validate`函数会抛出一个`ValidationError`。 总之,jsonschema是Python中非常实用的一个库,对于确保数据的正确性和一致性起到了关键作用,尤其是在处理来自外部的JSON数据时。...

    grunt-jsonschema-validate:执行 JSON 模式验证的 Grunt 任务

    grunt-jsonschema-validate v0.1.3 根据 JSON 模式验证 JSON 文件的 Grunt 任务 入门 这个插件需要 Grunt &gt;=0.4.0 如果您以前没有使用过 ,请务必查看指南,因为它解释了如何创建以及安装和使用 Grunt 插件。 熟悉...

    json validate

    3. **验证工具**:列举并解释一些常用的JSON验证工具,如`jsonschema`库(Python)、`ajv`库(JavaScript)等,以及它们的使用方法。 4. **验证过程**:详细描述JSON数据验证的步骤,如何创建和应用JSON Schema,...

    JSONSchema.swift:Swift 中的 JSON 模式验证器

    JSONSchema.swift 不支持远程引用 。 安装 JSONSchema 可以通过安装。 pod 'JSONSchema' 用法 import JSONSchema try JSONSchema. validate ([ " name " : " Eggs " , " price " : 34.99 ], schema : [ " type ...

    Laravel开发-json-schema-validator

    $request-&gt;validate(json_decode(file_get_contents('path/to/user.schema.json'), true)); // 如果验证通过,这里处理业务逻辑 } } ``` 在上面的例子中,`json_decode(file_get_contents('path/to/user....

    jsonschema:Python的JSON模式的(其他)实现

    &gt;&gt; &gt; from jsonschema import validate &gt;&gt; &gt; # A sample schema, like what we'd get from json.load() &gt;&gt; &gt; schema = { ... "type" : "object" , ... "properties" : { ... "price" : { "type" : "number" }, ... ...

    jsonschema:Nim 的 JSON Schema 实现

    2. 验证 JSON 数据:有了 JSON Schema 后,你可以使用 jsonschema 库的 `validate` 函数来校验 JSON 数据是否符合规则: ```nim import json var data = fromJson(JsonNode): { "name": "Alice", "age": 25 } if ...

    Python库 | json_schema_discovery-1.1.0-py3-none-any.whl

    4. 验证数据:使用`json_schema_discovery.validate`函数对JSON数据进行验证,如果数据不符合Schema,会抛出异常。 5. 处理异常:捕获验证过程中可能抛出的异常,进行相应的错误处理。 总结起来,`json_schema_...

    jsonschema-validator-default:验证对象,如果写入正确,则返回缺少默认值的对象

    jsonschema-validate-default 只是一个基于jsonschema库的小库,可让您测试对象是否有效以及是否将其与默认数据结合使用范例懒惰的const validate = require ( 'djsv' ) ;// create your schemaconst json = { "type...

Global site tag (gtag.js) - Google Analytics