Json模式。如何基于另一个属性值验证属性键?

闲逛

数据:

{
   "languages": ['en', 'ch'],
   "file": {
      "en": "file1",
      "ch": "file2"
    }
}

如何定义通过“语言”属性验证文件属性中键名的架构?

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description": "",
  "type": "object",
  "properties": {
    "languages": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "file": {
      "type": "object",
      "properties": ????
    }
}
特别是

您可以使用一些验证程序支持的自定义关键字来定义其他数据约束,例如Ajv(我是作者):

var Ajv = require('ajv');
var ajv = new Ajv;
ajv.addKeyword('validateLocales', {
    type: 'object',
    compile: function(schema) {
        return function(data, dataPath, parentData) {
            for (var prop in data) {
                if (parentData[schema.localesProperty].indexOf(prop) == -1) {
                    return false;
                }
            }
            return true;
        }
    },
    metaSchema: {
        type: 'object',
        properties: {
            localesProperty: { type: 'string' }
        },
        additionalProperties: false
    }
});

var schema = {
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "languages": {
      "type": "array",
      "items": { "type": "string" }
    },
    "file": {
      "type": "object",
      "validateLocales": {
          "localesProperty": "languages"
      },
      "additionalProperties": { "type": "string" }
    }
  }
};

var data = {
   "languages": ['en', 'ch'],
   "file": {
      "en": "file1",
      "ch": "file2"
    }
};

var validate = ajv.compile(schema);
console.log(validate(data));

参见https://runkit.com/esp/57d9d419646b97130082de34

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MVC3项目从另一个属性设置StringLength验证值

来自分类Dev

XSLT基于另一个值添加属性值

来自分类Dev

如何基于另一个属性的选择异步更新viewmodel属性

来自分类Dev

如何通过更改另一个属性的值来更改一个属性的值?(相关属性)

来自分类Dev

根据另一个属性的值验证一个属性的值

来自分类Dev

Swift:基于另一个属性从Parse.com检索对象值

来自分类Dev

如何使用RDD中的另一个属性的值来检索属性的值

来自分类Dev

如何基于另一个属性获取JSON属性

来自分类Dev

Rails根据另一个属性的值验证模型属性

来自分类Dev

如何基于另一个JSON属性有条件地反序列化JSON对象?

来自分类Dev

如何访问嵌套在另一个json响应的['error']属性中的json属性?

来自分类Dev

打字稿:基于另一个属性的属性

来自分类Dev

c#根据另一个属性的相同值,从另一个中减去一个json的属性int值

来自分类Dev

如何基于另一个属性的值访问嵌套的JSON属性?

来自分类Dev

在React中,如何使用另一个属性值获取对象的属性值?

来自分类Dev

基于另一个属性值的动态类型属性

来自分类Dev

使用基于另一个属性值的嵌套路径进行Mongodb查询

来自分类Dev

在Java中创建Xpath以基于另一个属性值选择一个属性值

来自分类Dev

根据另一个属性约束属性值

来自分类Dev

Swift:基于另一个属性从Parse.com检索对象值

来自分类Dev

使用jq获取基于json中另一个属性的键列表

来自分类Dev

如何使用RDD中的另一个属性的值来检索属性的值

来自分类Dev

Json模式。如何基于另一个属性值验证属性键?

来自分类Dev

展平json,以使一个属性是键,而另一个值

来自分类Dev

如何基于同一文档的另一个属性创建一个属性?

来自分类Dev

基于数组中的一个键值如何找到另一个键的值?

来自分类Dev

基于另一个更新顶点属性

来自分类Dev

用基于另一个属性的概率填充缺失值

来自分类Dev

基于另一个属性的值条件的属性值

Related 相关文章

  1. 1

    MVC3项目从另一个属性设置StringLength验证值

  2. 2

    XSLT基于另一个值添加属性值

  3. 3

    如何基于另一个属性的选择异步更新viewmodel属性

  4. 4

    如何通过更改另一个属性的值来更改一个属性的值?(相关属性)

  5. 5

    根据另一个属性的值验证一个属性的值

  6. 6

    Swift:基于另一个属性从Parse.com检索对象值

  7. 7

    如何使用RDD中的另一个属性的值来检索属性的值

  8. 8

    如何基于另一个属性获取JSON属性

  9. 9

    Rails根据另一个属性的值验证模型属性

  10. 10

    如何基于另一个JSON属性有条件地反序列化JSON对象?

  11. 11

    如何访问嵌套在另一个json响应的['error']属性中的json属性?

  12. 12

    打字稿:基于另一个属性的属性

  13. 13

    c#根据另一个属性的相同值,从另一个中减去一个json的属性int值

  14. 14

    如何基于另一个属性的值访问嵌套的JSON属性?

  15. 15

    在React中,如何使用另一个属性值获取对象的属性值?

  16. 16

    基于另一个属性值的动态类型属性

  17. 17

    使用基于另一个属性值的嵌套路径进行Mongodb查询

  18. 18

    在Java中创建Xpath以基于另一个属性值选择一个属性值

  19. 19

    根据另一个属性约束属性值

  20. 20

    Swift:基于另一个属性从Parse.com检索对象值

  21. 21

    使用jq获取基于json中另一个属性的键列表

  22. 22

    如何使用RDD中的另一个属性的值来检索属性的值

  23. 23

    Json模式。如何基于另一个属性值验证属性键?

  24. 24

    展平json,以使一个属性是键,而另一个值

  25. 25

    如何基于同一文档的另一个属性创建一个属性?

  26. 26

    基于数组中的一个键值如何找到另一个键的值?

  27. 27

    基于另一个更新顶点属性

  28. 28

    用基于另一个属性的概率填充缺失值

  29. 29

    基于另一个属性的值条件的属性值

热门标签

归档