当前位置:   article > 正文

json schema validate

jsonshcema.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
[code]
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);
})


[/code]

参考资料:
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/
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/286829
推荐阅读
相关标签
  

闽ICP备14008679号