当前位置: 首页 > 知识库问答 >
问题:

表达式树的JSON模式

习斌
2023-03-14

我需要为简单的语法表达式创建模式,其中:

{Expression}:
     {Function}
     OR {Variable}
{Function}:   
     FunctionName [array of {Expression}]
{Variable}:
     VariableName
{
    "Expression": {
        "function": "MyFunc",
        "args": [ { "varName": "X1" }, { "varName": "X2" }, { "function": "MyFunc2", "args": [ { "varName": "123" } ] } ]
    }
}
{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "definitions": {
        "var": {
            "type": "object",
            "properties": {
                "varName": { "type": "string" }
            },
            "required": [ "varName" ]
        },
        "func": {
            "type": "object",
            "properties": {
                "function": { "type": "string" },
                "args": { "type": "array", "items": { "$ref": "#/definitions/expr" } }
            },
            "required": [ "function" ]
        },
        "expr": {
            "oneOf": [
                { "$ref": "#/definitions/var" },
                { "$ref": "#/definitions/func" }
            ]
        }
    },
    "type": "object",
    "properties": {
        "Expression": { "$ref": "#/definitions/expr" }
    }
}

1)所需的属性“varname”不存在

2)属性“expression”的值必须完全符合以下架构之一:{“type”:“object”、“properties”:{“varname”:{“type”:“string”}}、“required”:[“varname”]}、{“type”:“object”、“properties”:{“function”:{“type”:“string”}、“args”:{“type”:“array”、“items”:{“$ref”:“#/definitions/expr”}}}、“required”:[“function”]}

任何想法都很感激

共有1个答案

葛成双
2023-03-14

您的架构编写得很好,没有错误。问题一定出在您正在使用的验证程序中。模式在http://jsonschemalint.com/draft4/#和http://json-schema-validator.herokuapp.com/上成功验证。我还详细审查了一下,没有发现任何错误。

可以尝试的一件事是使用Anyof而不是Oneof。它将产生与之一相同的结果,因为这两个模式是互斥的。如果幸运的话,该bug正在影响之一,但没有影响之一。

 类似资料:
  • 我需要编写一个具有以下规则的正则表达式: null null 这些示例无效: > 12--11(因为它包含两个连字符) 1-2345(因为它包含5号) <>是字符出现在最后一个位置,那么在字符之前必须有一个数字not hypen。 即11-A(必须不及格)11-1A(必须及格)

  • 我是正则表达式的初学者,并尝试搜索特定的数字模式。以下数据以 XML 格式嵌入。 要求是提取数据(最里面的列表)。在这个例子中,数据从24779开始到24760。注意:每次数据可能不是从“24”开始。因此,我计划通过以下逻辑提取:如果标签名(在本例中:DUT_1_PC)具有非零的有效数据,并且有效数据的计数大于100,用逗号分隔,则提取该列表及其标签名(DUT_1_PC)。 我无法提取所需的数据。

  • 我最近一直在研究java中的树。我在sanfoundry上找到了这个代码。com,这对于表达式树来说是非常棒的。它使用前缀,然后打印出前缀表达式的中缀和后缀,最后打印出答案。我的问题是,我正试图找出如何将它简化为只接受后缀并打印出答案。因此,它不必读入前缀并进行所有这些操作,而是读入后缀并打印出答案。下面是我找到的代码。这是一个简单的修复,只是让它做后缀?还是更难的? 这是主要的方法。

  • 问题内容: 我需要这件事的帮助。查看以下正则表达式: 我想查找这样的词:“自制”,“ aaaa-bbb”而不是“ aaa-bbb”,而 不是 “ aaa–aa–aaa”。基本上,我想要以下内容: 单词-连字符-单词。 它适用于所有内容,但该模式会通过:“ aaa–aaa–aaa”,但不应通过。哪种正则表达式适用于此模式? 问题答案: 可以从表达式中删除反斜杠: 下面的代码应该工作 请注意,您可以使

  • 问题内容: 有没有办法让AngularJS在模型数据中评估表达式? HTML: 模型: 最终结果将是:。 问题答案: 您可以使用该服务来插值字符串… JSFiddle

  • 英文原文:http://emberjs.com/guides/templates/conditionals/ 有些时候,或许我们只希望在一个属性存在的时候显示一部分模板。 这时,我们就可以使用{{#if}}助手按条件渲染一个代码块,如下所示: 1 2 3 {{#if person}} Welcome back, <b>{{person.firstName}} {{person.lastNam