我想問一下如何正確轉換下一個json字符串。我有這個字符串:如何正確解析json對象到Jackson的數組?
{「response」:{「meta」:{「hits」:1326,「time」:55,「offset」:0},「docs」:[{「web_url」:「 http://www.nytimes.com/2016/04/05/fashion/china-luxury-goods-retail.html"},{"web_url":"http://www.nytimes.com/2016/04/ 05/fashion/luxury-goods-retail.html「},...
我只想要」docs「數組。我以這種方式使用傑克遜轉換器:
RestTemplate restTemplate=new RestTemplate();
MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter();
jsonConverter.setSupportedMediaTypes(Arrays.asList(new MediaType("text", "json", MappingJackson2HttpMessageConverter.DEFAULT_CHARSET)));
restTemplate.getMessageConverters().add(jsonConverter);
ArrayList<WebUrl> topStories=restTemplate.getForObject(URL,Docs.class).getUrls();
,這裏是我的文檔類:
@JsonIgnoreProperties(ignoreUnknown = true)
public class Docs {
@JsonProperty("docs")
private ArrayList<WebUrl> urls;
public Docs(ArrayList<WebUrl> urls) {
this.urls= urls;
}
public Docs(){
}
public ArrayList<WebUrl> getUrls() {
return urls;
}
public void setUrls(ArrayList<WebUrl> urls) {
this.urls=urls;
}
}
這裏是我的WebUrl.class
public class WebUrl {
@JsonProperty("web_url")
private String webUrl;
public WebUrl(){
}
public String getWebUrl() {
return webUrl;
}
public void setWebUrl(String webUrl) {
this.webUrl = webUrl;
}
public WebUrl(String webUrl) {
this.webUrl = webUrl;
}
}
但它給我的空指針陣列上的異常。我怎樣才能解決這個問題?
你需要從JSON的頂部解析,你不能從中間提取文檔。例如,Response類將包含Docs類和Meta類在哪裏? –
我對JSON沒有太多的經驗,所以我不知道我應該這樣做。 – green
那你是怎麼知道創建Docs和WebUrl類的?只需將您的JSON複製到本網站,即可爲您生成傑克遜課程。 http://www.jsonschema2pojo.org –