【发布时间】:2020-04-10 11:03:32
【问题描述】:
所以,我使用这个方法返回一个Set<String>,但实际上我得到的是一个像这样的Json字符串
[
{
"id":"Id1"
},
{
"id":"Id2",
"title":"anyTitle"
}
]
我的目标是获取键“id”的值。我还制作了一个 java bean 来映射数据:
public class Data {
private String id;
private String title;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
我尝试使用 gson 进行解析,但我得到的只是一个错误:Cannot cast 'java.util.LinkedHashMap$LinkedKeyIterator' to 'com.google.gson.stream.JsonReader'
那么,显然我做错了什么:
Set<String> availableData = getData(); //this method returns a json string
Iterator<String> itr = availableData.iterator();
while (itr.hasNext()) {
Gson gson = new Gson();
JsonParser parser = new JsonParser();
JsonObject object = (JsonObject) parser.parse(itr.next());
Data data = gson.fromJson(object, Data.class);
}
更新:实际错误是:Type mismatch Can't assign com.google.common.collect.Maps$TransformedEntriesMap to java.lang.String
任何帮助将不胜感激。
【问题讨论】:
-
getData() 的返回类型是什么?
-
@AbinashGhosh Maps$TransformedEntriesMap
-
如果这个问题解决了,请选择最佳答案。