![](/img/trans.png)
[英]Search multiple JSON files and extract values based on some condition in Java
[英]Access values in JSON based on a condition using Groovy
我正在嘗試從httpResponse(以JSON形式)中提取兩組信息-
1.位置
2.水果=蘋果且luckyNumber = 10的城市。
{
"userInformation": {
"Name": "John",
"Location": "India"
},
"details": [
{
"fruit": "Apple",
"color": "Red",
"city": "New Delhi",
"luckyNumber": 10
},
{
"fruit": "Banana",
"color": "yellow",
"city": "Goa",
"luckyNumber": 12
}
]
}
為了提取位置,我嘗試了以下代碼:
def slurper = new JsonSlurper().parseText(httpResponse)
userLocation = slurper.userInformation.Location
這給我一個錯誤-
javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: groovy.json.JsonSlurper.parseText() is applicable for argument types: (java.util.LinkedHashMap) values: [[statusCode:200, reason:OK, headers:[Access-Control-Allow-Credential:true, ...], ...]] Possible solutions: parseText(java.lang.String), parse([B), parse([C), parse(java.io.File), parse(java.io.InputStream), parse(java.io.Reader)
錯誤
No signature of method: groovy.json.JsonSlurper.parseText() is applicable for
argument types: (java.util.LinkedHashMap)
Possible solutions: parseText(java.lang.String), ...
表示當此方法接受String時,您嘗試將Map( httpResponse
)傳遞到JsonSlurper.parseText()
。
查找如何將響應主體作為字符串獲取,然后可以使用JsonSlurper.parseText()
可能您需要httpResponse.getData()或僅需要httpResponse.data來訪問響應數據有效負載。 如果已根據Content-Type正確解析了響應,則此數據可能已經在地圖中,在這種情況下,您無需使用JsonSlurper。 如果data是json字符串,則使用JsonSlurper。
無論如何你都會有類似的東西
def cities = responseData.details.findAll{it.fruit=="Apple" && it.luckyNumber==10}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.