1

我正在设置一个配置文件和系统来处理它。我拥有的当前文件都是 JSON,并使用 GSON 库读取。我想做的是更改配置文件的一部分,以便我可以链接规则以添加更高级的逻辑。

例如,配置部分看起来类似于(假设它是 JSON,但显然它不是正确的语法):

Parts: {
    {
        {
            Type: Keyword,
            Keywords: "a,b,c",
            UniqueOnly: true,
            Threshold: 2,
        }

        AND

        {
            Type: RegEx,
            Pattern: "^(abc|123)$",
            UniqueOnly: true,
            Threshold: 2,
        }
    }
    OR
    {
        Type: Keyword,
        Keywords: "abc",
        Threshold: 1
    }
}

内部部分将能够适当地转换回一个类,但在规则之间,我希望有一个选项用于“AND”以及“OR”和嵌套。这是可以通过任何 JSON/GSON 解析器轻松实现的,还是更像是需要从头开始编写一个完全自定义的阅读器?

4

1 回答 1

0

在这种情况下我会使用有效的 JSON,或者根本不会使用 JSON。我试图做你想做的事情并将其放在gist上。序列化和反序列化的结果 JSON 如下所示:

{
  "combOperation": "OR",
  "elements": [
    {
      "combOperation": "AND",
      "elements": [
        {
          "regex": "^[a-zA-Z]*",
          "uniqueOnly": false,
          "threshold": 1
        },
        {
          "keyWord": "BarFoo",
          "uniqueOnly": false,
          "threshold": 5
        }
      ]
    },
    {
      "keyWord": "FooBar",
      "uniqueOnly": true,
      "threshold": 2
    }
  ]
}
于 2013-01-02T17:02:32.180 回答