如何使用 json 模式文件测试 json 文件

Posted

技术标签:

【中文标题】如何使用 json 模式文件测试 json 文件【英文标题】:how to test a json file with json schema file 【发布时间】:2017-04-08 16:26:40 【问题描述】:

我是 json 的新手。我在 Json 模式中学习了更多东西,但在针对 json-schema.json 文件测试我的 user.json 文件时我无能为力。请注意,我需要使用 javascript 变量进行测试,该变量应返回 true 或 false 以进一步处理。在此我粘贴了我的文件。

json-schema.json


  "description": "Any validation failures are shown in the right-hand Messages pane.",
  "type": "object",
  "properties": 
    "foo": 
      "type": "number"
    ,
    "bar": 
      "type": "string",
      "enum": [
        "a",
        "b",
        "c"
      ]
    
  

user.json


 "foo": 12345,
 "bar": "a"

当我在http://jsonschemalint.com/#/version/draft-05/markup/json 中测试上述代码时,IT 说 user.json 的格式正确。但我需要在本地测试

提前致谢。

【问题讨论】:

How to test if a string is JSON or not?的可能重复 在浏览器中还是在应用中? 在浏览器中@Legends 嗨,mahi。我很清楚如何测试字符串是否为 JSON。 【参考方案1】:

您可以使用JSON schema validators 之一。

使用这些库之一的示例,ajv:

import Ajv from 'ajv';

import schema from 'schema.json';
import data from 'data.json';

function isValid(schema, data) 
  const ajv = new Ajv();
  const valid = ajv.validate(schema, data);

  if (!valid) 
    console.log(ajv.errors);
    return false;
  

  return true;

【讨论】:

以上是关于如何使用 json 模式文件测试 json 文件的主要内容,如果未能解决你的问题,请参考以下文章

在模拟API响应时,如何在单元测试中使用JSON文件

如何解析 JSON 模式文件并使用许多列约束动态创建新的 Python 类?

如何在巨大的 json 文件之间执行最佳模式搜索?

开玩笑如何在 package.json 脚本中设置文件模式

在logstash中使用grok模式解析我的json文件?

如何从 XSD 创建 BQ 模式