2

ResteasyとGWTを使用しています。特定の理由で、他の多くの人も同様の動機を持っているため、私が取り組んでいるソフトウェアの機能の一部にGWT-RPCを使用していません。

JSONとの間でPOJOをマーシャリング/デマーシャリングすることにより、GWTクライアントとサーバー間でPOJOを渡す必要があります。

OK、両側のPOJO-JSONコンバーターを一致させる必要があるため、言うのは簡単です。

Q1。JSONに標準のPOJO表記はありますか?JSONでPOJO表記の形式を指定するietfRFC、ISO、またはECMAはありますか?それとも、それはすべてのリバータリアンの無政府状態にとって無料ですか?

Q2。JettisonとJackson(JAXBで使用する場合)とAutobeansはPOJOに対して同じJSONを生成しますか?

Q3。これは最も重要な質問です。上記の他の質問は無視できますが、これに答える必要があります。連携して動作するサーバー側とGWTクライアント側のJSONizer/deJSONizerの組み合わせのペアを教えてください。たとえば、クライアント側でAutobeansを使用し、サーバー側でJAXB-jettisonを使用して、JSON化されたPOJO表記が同じであると期待できますか?

Q4。JAXB、Jettison / JacksonのJavaソースコードをwhatever.gwt.xmlファイルに含めることで、GWTクライアント側でJAXB-JettisonまたはJAXB-Jacksonを使用することは可能ですか?JAXB、Jettison / Jacksonソースコードの一部で、たとえばリフレクションに依存している、またはシリアル化できないなど、GWTクライアントコードでJAXB + Jettison / Jacksonを使用できない部分はありますか?可能であれば、その方法を説明してください。

Q1について明確にする必要があります:

JSONのRFCについては質問していません。JSONPOJO形式について質問しています。POJOがJSONに変換されるとき、誰もが独自の方法でそれを行います。したがって、POJOがJSONに変換される方法とフォーマットを標準化するためのRFCが必要だと思います。標準はありますか?!!あなたの答えが私にJSONのRFCを引用しないことを願っています!!

どうですか

誰かが私に話す必要があります

  • GWTクライアントのbadgerfish
  • GWTクライアントサーバーはJSON-RPCと一致しました。
4

2 に答える 2

2

JSONはJavaScriptのサブセットにすぎず、DouglasCrockfordによって「発明」されました。application / jsonのRFCは次のとおりです:http ://www.ietf.org/rfc/rfc4627.txt?number=4627 。したがって、サーバー側のソリューションはどれも同じ結果を生み出すはずです。

クライアントサイドでRestyGwt(http://restygwt.fusesource.org/)を使用しており、チャームのように機能します。そのJSONエンコーディングスタイルはデフォルトのJacksonDataBindingと互換性があるため、Jacksonでも機能するはずです。

于 2011-08-07T13:48:14.817 に答える
2

マッピングの標準はありませんが、JSON形式の単純さ、およびJava Beansのデファクトスタンダード(つまり、set / getメソッドの論理プロパティ名へのマッピング)を考えると、明らかに単純なマッピングがあると思います。いくつかの例外の1つは、Jettisonです。

Jettisonは、JSON<->XMLライブラリほどJSON/POJOライブラリではありません。JSONをXMLAPI呼び出しに変換し(またはその逆)、JSONでのXMLデータバインディングにJAXBなどのXMLツールを使用できるようにします。ただし、ここでのコストは、JSONが生成および消費するJSONがさらに複雑になり、XMLAPIを操作するためにのみ必要になることです。そしてこれが、Jackson、GSON、Flex-json、その他の「ネイティブ」JSONライブラリで使用されるような通常の単純なバインディングと比較して非標準になっている理由です。

どういうわけか本当に必要な場合を除いて、Jettisonを使用しないことをお勧めします。XMLとJSONの両方を作成する場合でも、通常は、JSONツールを使用してJSONをPOJOとの間でマッピングし、XMLをPOJOとは別に(JAXBなどを使用して)マッピングすることをお勧めします。

Jettisonは、(当時の)より成熟したXMLツールと新しいJSON形式の間のギャップを埋めることを目的としていました。しかし、成熟したJSONライブラリが数十個利用できる今日では、あまりメリットはありません。

于 2011-08-08T03:24:28.670 に答える