我正在使用带有 SpringAndroid 的 RoboSpice 来解析 JSON 数据。即使我设法获取了几乎所有 JSON 对象,我也无法在主 json 对象中检索 json 对象的内部数组列表。
这是要解析的结果 JSON 的结构:
{
-Model[n]:
-0:
{
name:"abcd"
innerList[3]:
{
-0:
{
innerObject:
{
id:"10"
....
}
.....
}
}
}
}
当我访问innerObject 的POJO 中的数据成员时,出现空指针异常。
@JsonIgnoreProperties(ignoreUnknown = true)
public class Model{
@JsonProperty("name")
private String Name;
@JsonProperty("innerList")
private ArrayList<ClassInnerList> inner;
//getters and setters
}
innerList 的 POJO:
@JsonIgnoreProperties(ignoreUnknown = true)
public class ClassInnerList
{
@JsonProperty("innerObject")
ClassInnerObject innerObject;
//getters and setters
}
内部对象的 POJO
@JsonIgnoreProperties(ignoreUnknown = true)
public class ClassInnerObject{
@JsonProperty("Id")
String Id;
//getters and setters
}
请求类如下
public class GetDetailsRequest extends SpringAndroidSpiceRequest<Model>
{
private String url;
private Model Model;
public GetDetailsRequest() {
super(Model.class);
this.url="my url"
...........
}
@Override
public Model loadDataFromNetwork() throws Exception {
RestTemplate restTemplate=new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
HttpHeaders httpHeaders=new HttpHeaders();
httpHeaders.set("key","keyvalue");
httpHeaders.setAccept(Collections.singletonList(new MediaType("application","json)));
HttpEntity<?> requestEntity = new HttpEntity<Object>(httpHeaders);
ResponseEntity<Model> ResponseEntity=restTemplate.exchange(url, HttpMethod.GET,requestEntity,Model.class);
Model=ResponseEntity.getBody();
return Model;
}
}