0
"context A": {
    "name": "parent A",
    "operation": {
        "name": "op A",
        "convenienceType": {
            "descriptor": "View",
            "id": "view_id"
        }
    },
    "context B": {
        "name": "child B",
        "operation": {
            "name": "op B",
            "convenienceType": {
                "descriptor": "View",
                "id": "view_id"
            }
        }
    }   
}

operationJSON で繰り返されるオブジェクトがありますが、コンテキストは異なります。操作のconvenienceTypeフィールドは基本的に列挙型選択からのものであるため、オブジェクトが生成され"View"たコンテキストに関係なく、記述子を持つconvenienceTypeは同じオブジェクトです。operation

これを解析するために、Groovy スクリプトで JSONSlurper を使用しています。これが私が見ているものです:

コンテキスト A レベル:

operation.convenienceType.descriptor // evaluates to "View" (string)

コンテキスト B レベル:

operation.convenienceType.descriptor // evaluates to ["View"] (array)

だから私が何かをしようとすると

operation.convenienceType.descriptor.toLowerCase

コンテキスト A では機能しますが、コンテキスト BI ではエラーが発生します。これは、私のコードがtoLowerCase配列のメソッドがないと不平を言っているためです。

どうしてこうなったかわかる方いますか...?

4

1 に答える 1