我有一个代码来解析一个巨大的JSON:
static <T> List<T> parseJSON(String json) {
Map<String, T> result = jsonSlurper.parseText(json)
List<T> list = result.result
return list
}
String json = {result:[{obj1},{obj2} ....]}
我最后在变量列表中得到了一个正确的List但在Java中获取值时会抛出异常java.lang.ClassCastException: groovy.json.internal.LazyMap cannot be cast to {MyPOJO}
这是我收到数据的方式
List<MYClass> list = MyClass.parseJSON(someString);
for(MyClass i : list) {
System.out.println(i.someValue());
}
我该如何解决这个问题?
答案 0 :(得分:0)
你的通用没有多大意义。
在你的问题中有这样的json字符串时,parseJSON总是返回static defaultProps = {
fetchMeetups
}
state = {
loading: false,
meetups: []
}
async componentDidMount() {
this.setState({
loading: true
});
const data = await this.props.fetchMeetups();
setTimeout( () => this.setState({loading: false, meetups:
data.meetups}),2000);
}
的列表。
您必须从LazyMap显式转换为MyClass。否则只是一个演员异常。
这是我的代码:
groovy.json.internal.LazyMap