我有一个JSON,我想用紫豆解析它。我在for循环中得到了NullPointerException,可能是persons.getPersons()
AppAutoBeanFactory factory = GWT.create(AppAutoBeanFactory.class);
AutoBean<PersonsWrapper> bean =AutoBeanCodex.decode(factory, PersonsWrapper.class, "{\"persons\": " + strResponse + "}");
IPersons persons = bean.as().getPersons();
for (IPerson person : persons.getPersons()) {
...
}我的AppAutoBeanFactory看起来是这样的:
interface AppAutoBeanFactory extends AutoBeanFactory {
AutoBean<IPerson> person();
AutoBean<IPersons> ipersons();
AutoBean<PersonsWrapper> persons();
}JSON (变量strResponse)如下所示:
[
{
"name":"John",
"surname":"Blue",
"records":[10.5, 12.5, 18.6]
},
{
"name":"Steven",
"surname":"Green",
"records":[11.5, 15.5, 14.6]
}
]我制作了这些接口:
public interface PersonsWrapper {
IPersons getPersons();
}
public interface IPersons {
void setPersons(List<IPerson> persons);
List<IPerson> getPersons();
}
public interface IPerson {
String getName();
void setName(String name);
String getSurname();
void setSurname(String surname);
}我怎么才能让它起作用?以及如何将记录数组添加到IPerson?
发布于 2014-10-06 14:35:49
按照您的做法,您期望JSON具有{"persons:{"persons":[…]}}:外部对象是一个PersonsWrapper,其persons属性是IPersons,其persons属性是List<IPerson>。
尝试放弃PersonsWrapper,而只使用IPersons:
IPersons bean =AutoBeanCodex.decode(factory, IPersons.class, "{\"persons\": " + strResponse + "}").as();
for (IPerson person : bean.getPersons()) {
...
}https://stackoverflow.com/questions/26218257
复制相似问题