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 をまったく使用しません。私はあなたが望んでいることをやろうとし、それを要点に置きました。シリアル化および逆シリアル化された結果の 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 に答える