次のjson文字列を正しく変換する方法をお聞きしたいと思います。私はこの文字列を持っています:jsonオブジェクトを正しく解析してJacksonと配列する方法はありますか?
{"応答":{"メタ":{"ヒット":1326、 "時間":55、 "オフセット":0}、 "{" "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 "アレイのみをご希望です。
@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;
}
}
ですが、それは私にNULLポインタを与える:
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();
、ここでは、私のドキュメントクラスです:私はこの方法でジャクソンのコンバーターを使用しています配列の例外。これをどうすれば解決できますか?
JSONの先頭から解析する必要があります。途中でドキュメントを抽出するだけでは問題ありません。たとえば、DocsクラスとMetaクラスを含むResponseクラスはどこにありますか? –
私はJSONで多くの経験がないので、私はそれを行う必要があるか分からなかった。 – green
DocsとWebUrlクラスを作成する方法を知りましたか? JSONをこのサイトにコピーするだけで、Jacksonクラスが生成されます。 http://www.jsonschema2pojo.org –