Node.js环境下JSON LD属性值校验的可用NPM包咨询
推荐几个可直接校验Schema.org JSON-LD的NPM包
针对你需要校验Schema.org结构JSON-LD的需求,推荐以下几个开箱即用的NPM包,无需手动编写大量校验规则:
1. @digitalbazaar/jsonld-validator
这个包专门用于JSON-LD的语法和结构校验,原生支持Schema.org上下文,能自动验证属性值的类型合规性(比如Article的thumbnailUrl是否为合法URL)。
安装:
npm install @digitalbazaar/jsonld-validator
基础用法示例:
import { validate } from '@digitalbazaar/jsonld-validator'; // 从网页获取的JSON-LD数据 const jsonLdData = { "@context": "https://schema.org", "@type": "Article", "thumbnailUrl": "not-a-url", // 其他属性... }; try { await validate({ document: jsonLdData, contextUrl: "https://schema.org", strict: true // 开启严格类型校验 }); console.log("校验通过"); } catch (error) { console.error("校验失败:", error.message); }
2. schema-dts + ajv
如果想继续使用ajv,schema-dts提供了自动生成的Schema.org JSON Schema文件,可直接导入ajv使用,省去手动编写规则的麻烦。
安装:
npm install schema-dts ajv
基础用法示例:
import Ajv from 'ajv'; import { ArticleSchema } from 'schema-dts/schema'; const ajv = new Ajv(); const validateArticle = ajv.compile(ArticleSchema); const jsonLdData = { "@context": "https://schema.org", "@type": "Article", "thumbnailUrl": "invalid-string", // 其他属性... }; const isValid = validateArticle(jsonLdData); if (!isValid) { console.error("校验失败:", validateArticle.errors); }
3. jsonld-schema-validator
这个包内置了完整的Schema.org校验规则,调用简单,直接传入JSON-LD数据就能完成属性类型校验。
安装:
npm install jsonld-schema-validator
基础用法示例:
import { validateSchema } from 'jsonld-schema-validator'; const jsonLdData = { "@context": "https://schema.org", "@type": "Article", "thumbnailUrl": "not-a-url", // 其他属性... }; const result = validateSchema(jsonLdData); if (!result.valid) { console.error("校验失败:", result.errors); }
内容的提问来源于stack exchange,提问作者koji
相关产品推荐
相关产品推荐

