私たちは、サーバーとクライアントアプリケーションに関連する共有クラスを(JAXB経由で)生成するためのxsdファイルだけを含んでいます。したがって、これらのクラスにはXMLアノテーションが含まれています。注釈を使用しないでJackson JSONプロセッサを使用する
1つのクライアントはAndroid Appです。また、私はJSON(Jersey/Jackson)を提供するRESTサービスと通信するので、ここではこれらのクラスをJSON逆シリアル化に使用したいと考えています。
私はこのようにAndroid上でJackson(バージョン1.7.2)を使用しよう:私はMAPPERは、アノテーションを使用しないでください設定したが、私はまだ
02-07 09:30:18.631: ERROR/AndroidRuntime(447): java.lang.NoClassDefFoundError: javax.xml.bind.annotation.XmlAccessorType
02-07 09:30:18.631: ERROR/AndroidRuntime(447): at java.lang.Class.getDeclaredAnnotations(Native Method)
02-07 09:30:18.631: ERROR/AndroidRuntime(447): at org.codehaus.jackson.map.introspect.AnnotatedClass.resolveClassAnnotations(AnnotatedClass.java:292)
02-07 09:30:18.631: ERROR/AndroidRuntime(447): at org.codehaus.jackson.map.introspect.AnnotatedClass.construct(AnnotatedClass.java:139)
知っているを取得
ObjectMapper mapper = new ObjectMapper();
mapper = mapper.configure(DeserializationConfig.Feature.USE_ANNOTATIONS,
false);
mapper = mapper.configure(SerializationConfig.Feature.USE_ANNOTATIONS,
false);
FooBar someObject = (FooBar) mapper.readValue(jsonString, FooBar.class);
Jacksonが注釈を解決するのを止めるトリック。
おかげ クラウス
私はGsonの使い方がはるかに簡単で、JSONをオブジェクトに直接変換するためのPOJOオブジェクトの自動インスタンス化を行います。 – androidworkz
Jacksonは完全なJSON-> POJO-> JSONデータバインディングを簡単に行うこともできます。だからGsonはどんな使い方で簡単に使えるでしょうか? – StaxMan