【发布时间】:2019-03-22 13:49:58
【问题描述】:
我在这里尝试做的是在从 API 调用获得的 Json 对象中进行迭代,以便搜索与键相关的值。但是,我无法从每次迭代中获取元组。来自以下代码:
public void findResponseValue(String param, String inputValue){
ArrayList<String> jsonArray = response.getBody().jsonPath().get("");
Iterator<String> iterator = jsonArray.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
iterator.next();
}
我收到以下错误
java.lang.ClassCastException:类 java.util.HashMap 不能转换为类 java.lang.String(java.util.HashMap 和 java.lang.String 在加载器“bootstrap”的模块 java.base 中)
它正确地迭代了arrayList,但尝试从中获取值失败。
响应正文示例
[
{
"creationDate": "2017-05-29T07:45:43Z",
"createdBy": "YYY.YYY",
"lastUpdate": "2018-09-26T10:10:12Z",
"updatedBy": "XXX.XXX",
"id": 22,
"partner": "ALS",
"countries": [
],
"countriesCodes": "NL",
"salesChannels": [
{
"code": "Integrated"
}
],
"touchPoints": [
],
"serviceEntity": "AWPNL",
"flag": false,
"activated": true,
"type": "dcx"
},
{
"creationDate": "2017-06-01T13:22:29Z",
"createdBy": "YYY.YYY",
"lastUpdate": "2017-11-30T12:24:36Z",
"updatedBy": "MMM.T.NNN",
"id": 39,
"partner": "ALS",
"countries": [
],
"countriesCodes": "ES",
"salesChannels": [
{
"code": "Integrated"
}
],
"touchPoints": [
],
"serviceEntity": "AWPES",
"flag": false,
"activated": true,
"type": "dcx"
}
]
【问题讨论】:
-
这个错误对我来说似乎很清楚,您的列表由 HashMap 对象组成,而不是 String 对象。
-
你能举一个响应正文的例子吗?
-
@StephanHogenboom 我添加了响应正文,谢谢
-
嗨@JoakimDanielson,我已经尝试过声明这个HashMap
> jsonHashMap = new HashMap >(); ... jsonHashMap = iterator.next();错误:(322, 40) java: 不兼容的类型:java.lang.String 无法转换为 java.util.HashMap >
标签: java arrays json httpresponse