JSON Schema 参考解析器
这个软件包需要 一个新的维护者 或至少一些贡献者。 详情 请阅读本条截至v10.0.0。 我不再花任何时间研究这个工具了 所以我可以集中精力扩大我的 重新造林慈善机构 而不是把自己烧成灰烬 试图维持一整批OSS项目 我不使用在我的消失的很小的业余时间。 如果你愿意的话,请联系. - 说吧 菲尔·斯通
解析、解析和引用 JSON Schema $ref 指针
问题:
你有一个JSON斯克马与 $ref 指向其它文件和(或)URL. 也许你提前知道所有参考文件 也许你没有。 也许有些是本地文件,有些是远程URL. 也许它们是JSON和YAML格式的混合. 也许有些文件包含相互的交叉引用.
{
"definitions": {
"person": {
// references an external file
"$ref": "schemas/people/Bruce-Wayne.json"
},
"place": {
// references a sub-schema in an external file
"$ref": "schemas/places.yaml#/definitions/Gotham-City"
},
"thing": {
// references a URL
"$ref": "http://wayne-enterprises.com/things/batmobile"
},
"color": {
// references a value in an external file via an internal reference
"$ref": "#/definitions/thing/properties/colors/black-as-the-night"
}
}
}
解决方案:
JSON Schema $Ref Parser 是一个完整的 JSON 参考 财务报告和审定财务报表 JSON 指针 最复杂的执行 JSON 谢马斯 并给你简单直截了当的JavaScript对象.
- 使用 贾森 或者说 也门 计划,甚至两者的混合!
- 支助
$ref指向外部文件和 URL,以及 自定义源 数据库等 - 可以吗 捆绑 多个文件组成一个只有 内部
$ref指针 - 可以吗 调试 生成一个简单易行的 JavaScript 对象
- 支助 参考文献,嵌入式引用,回溯引用,以及文件之间的交叉引用
- 保持对象引用平等 -
$ref指向同一值的总是对同一对象的解析 - 在Node v10, v12, & v14中测试,并在Windows, Mac和Linux上测试了所有主要网页浏览器
示例
$RefParser.dereference(mySchema, (err, schema) => {
if (err) {
console.error(err);
}
else {
// `schema` is just a normal JavaScript object that contains your entire JSON Schema,
// including referenced files, combined into a single object
console.log(schema.definitions.person.properties.firstName);
}
})
或使用 async编号 :await 换成语法. 下例与上同
try {
let schema = await $RefParser.dereference(mySchema);
console.log(schema.definitions.person.properties.firstName);
}
catch(err) {
console.error(err);
}
详情请参见 API 文档
安装
使用 无数字 :
npm install @apidevtools/json-schema-ref-parser
使用量
当在 Node.js apps 中使用 JSON Schema $Ref Parser 时,您可能想要使用 常见JS 语法 :
const $RefParser = require("@apidevtools/json-schema-ref-parser");
当使用诸如 宝贝 或者说 类型脚本,或诸如 网络软件包 或者说 滚动,您可以使用 ECMAScript 模块 语法代替 :
import $RefParser from "@apidevtools/json-schema-ref-parser";
如果您使用Node.js < 18, 您需要多填充 fetch一样 节点比对数字 :
import fetch from "node-fetch";
globalThis.fetch = fetch;
浏览器支持
JSON Schema $Ref Parser支持每个主要网页浏览器的最近版本. 旧浏览器可能需要 宝贝 和(或) 多元填充器。 。 。 .
要在浏览器中使用 JSON Schema $Ref Parser, 您需要使用捆绑工具, 如 网络软件包, (中文(简体) ), 滚动, (中文(简体) ), 括号,或 浏览器。有些捆绑者可能需要一些配置,例如设置 browser: true 内 卷起插件溶解。 。 。 .
API 文档
完备的 API 文档 就在这里
捐款
我欢迎任何贡献、增强和错误修正. 打开一个问题 关于 GitHub 和 提交拉动请求。 。 。 .
建筑物/试验
要在您的计算机上本地构建/测试项目:
-
克隆这个还原
git clone https://github.com/APIDevTools/json-schema-ref-parser.git -
安装依赖关系
npm install -
运行测试
npm test
许可证
JSON Schema $Ref Parser 是100%的自由和开放源代码,在 麻省理工学院许可证随意使用.
这个软件包是 树件如果你把它用于生产,那么我们要求你 给世界买一棵树 感谢我们的工作。 将会为当地家庭创造就业机会.
谢谢
感谢这些优秀的公司对开源开发商的支持 QQ