0

我尝试了几种不同的方法来做到这一点。我有一个用 JSONSlurper 解析的 JSON 字符串,看起来像这样,我想用 key==StoreID2 获取值。

    {
    "EmailData": {
        "MessageRecords": [
            {
                "To": "this@that.com",
                "FieldData": [
                    {
                        "key": "StoreName",
                        "value": "Livonia"
                    },
                    {
                        "key": "StoreID2",
                        "value": "7017"
                    }
                ]
            }
        ]
    }
}

使用 JSONPath,我可以得到这样的值:$.EmailData.MessageRecords[0].FieldData[?(@.key=="StoreID2")].value 但看起来 Groovy 没有可用的 JSONPath,没有加载我试图避免的非本地库 (com.jayway.jsonpath.JsonPath.parse)。

这实际上是解决方案:

def jsonSlurper = new JsonSlurper(); 
def jsonObject = jsonSlurper.parseText(inputSB.toString());
logger.info("Store: " + jsonObject.EmailData.MessageRecords[0].FieldData.find{it.key=='StoreID2'}.value);

谢谢

4

0 回答 0