首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >json架构目录的Linter

json架构目录的Linter
EN

Stack Overflow用户
提问于 2017-11-03 07:18:26
回答 4查看 580关注 0票数 0

我的团队构建了一个API,所有的输入和输出都使用JSON Schema来验证数据,这个项目正在增长,昨天我检测到我们已经有85个JSON文件,每个文件上都有一个JSON模式来验证某些东西,我还检测到我要对每个文件做很多重构,例如,应该提取许多重复的代码,并将其作为单个模式并在每个文件上引用此模式。所以我尝试用google搜索一个库来扫描这个目录,并帮助我检测这种错误,还有一个JSON schema linter,它可以帮助我检测其他错误,但我什么也找不到。所以我发布这个问题是想知道是否有人也有同样的问题,并找到了一些解决它的工具。

EN

回答 4

Stack Overflow用户

发布于 2017-11-03 07:25:41

对于我现在正在工作的项目,我们正在使用tv4来验证JSON Schema文件,而不是“linting”本身,但应该是您正在寻找的。

票数 1
EN

Stack Overflow用户

发布于 2017-11-03 09:45:48

我以前从未使用过这个库,但这里有一个您可以做的示例。在这里,库本身不是重要的部分。

下载http://json-schema.org/draft-04/schema并将其另存为draft04-metaschema.json (或用于模式的任何元模式)。使用npm中的ajv-cli

代码语言:javascript
复制
npm install -g ajv-cli
ajv validate -s draft04-metaschema.json -d your-schema.json

这将根据指定的元模式验证您的模式,以确保它是有效的。您可以使用相同的方法来验证您的模式,方法是使用您希望使用的任何其他库。希望这足以让你入门。

票数 1
EN

Stack Overflow用户

发布于 2019-01-25 00:14:37

我还必须找到一种验证模式的方法。ajv validate -s draft06-metaschema.json -d your-schema.json只检查基本的东西(例如,它不检查$ref的值和正则表达式)。ajv compile -s your-schema.json会检查更多内容并打印错误消息(如error: Invalid regular expression: /^(\d|[12]\d|3[01]$/: Unterminated group)。

因此,我使用以下脚本(validate_schema.sh):

代码语言:javascript
复制
#!/bin/bash

set -ex

[ $# = 3 ]
url_draft=$1
json_draft=$2
json_target=$3

jq -e '.["$schema"]=="'"$url_draft"'"' "$json_target"

# False positives are possible though:
ajv validate -s "$json_draft" -d "$json_target"

ajv compile -s "$json_target"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47086086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档