如何在 Groovy 中查询 JSON 对象,仅使用 Groovy 或原生 Java 库

问题描述

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

    {
    "EmailData": {
        "MessageRecords": [
            {
                "To": "[email protected]","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);

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)