JSONの解析にはthis twitter API users/show
responseのように、私はJacksonとGsonのJavaライブラリをこの作業を行うための候補として使用してきました。私はJSONのプロパティの小さなサブセットにしか興味がないので、Gsonは非常に簡潔な構文のためうまくいましたが、Gsonを使用し続けるために内部的な戦いを失いつつあります.Jsonは既にアプリケーションのどこかで使用されており、より良いパフォーマンス(私はそれがGsonを失う良い理由の両方であると認めている)。 Gsonのための唯一のコードは、これは私にはかなりいいです一行、単純なデシリアライゼーションのためのJackson対Gson
TwitterUser user = new Gson().fromJson(jsonStr, TwitterUser.class);
で構築するために必要な
public class TwitterUser {
private String id_str;
private String screen_name;
public String getId_str() {
return id_str;
}
public void setId_str(String id_str) {
this.id_str = id_str;
}
public String getScreen_name() {
return screen_name;
}
public void setScreen_name(String screen_name) {
this.screen_name = screen_name;
}
}
のようなPOJOのために
。あなたが望むプロパティを選ぶことができます。一方、Jacksonは選択したフィールドからPOJOを構築するのに少し面倒です。
Map<String,Object> userData = new ObjectMapper().readValue(jsonStr, Map.class);
//then build TwitterUser manually
または
TwitterUser user = new ObjectMapper().readValue(jsonStr, TwitterUser.class);
//each unused property must be marked as ignorable. Yikes! For 30 odd ignored fields thats too much configuration.
だから長いったらしい説明した後、私は上記の立証されているよりも少ないコードでジャクソンを使用することができます方法はありますか?
1つの注意:あなたは間違いなく新しいObjectMapperたびに作成したくない - のいずれかのインスタンスを注入するシングルトン、またはGuiceのを使用しています。幸いなことに、主な問題は以下にも答えました! – StaxMan
@StaxManはい、コードサンプルの完全性のためだけでした。 – markdsievers