0

gsonの逆シリアル化に問題があります。着信jsonは次のようになります。{"roles":{"name":"bla" "perm" : "bla"}} または、使用可能な役割がさらにある場合は、次のようになります {"roles":[{"name":"bla" "perm" : "bla"}{"name":"hihi" "perm" : "hihi"}]}。したがって、1回目はパラメータの役割がオブジェクトであり、2回目はオブジェクトの配列です。

JavaクラスにフィールドRole[]ロールがある場合に問題が発生します。また、jsonパラメーターの役割では、「BEGIN_ARRAYが必要ですが、BEGIN_OBJECTでした」というオブジェクトの例外が1つだけスローされます。

よろしくお願いします

4

2 に答える 2

1

これは少しばかげた状況です。ライブラリが json の 2 つの異なるスキーマを同時に適切に処理するとは期待できません。ただし、クライアントがサービスを利用するために GSON を使用したときに同様の問題が発生しましたが、Jersey を使用して構成されていました。

Jackson を適切な構成とともに追加すると、サービスが常に配列を提供し、これが問題の実際の修正になります。サービスを修正する方法については、このスレッドを参照してください。

于 2012-04-14T10:56:34.620 に答える
1

単一インスタンスのケースを処理し、逆シリアル化し、配列に変換してフィールドに設定する独自の TypeAdapter を使用して、均一にすることができます。

于 2012-04-14T11:42:07.497 に答える