問題タブ [autobean]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3588 参照

gwt - 型指定されたメンバーを含むパラメータ化された AutoBean タイプ

質問

結果の Bean が 1 つ以上のメンバーの型に影響する型パラメーターを持つように、AutoBean フレームワークを使用して JSON を逆シリアル化する方法はありますか?

バックグラウンド

JSON 結果を使用した RPC

RequestBuilderRPC リクエストを実行するためにGWT ( ) を使用しています。返される JSON ペイロードの形式は次のとおりです。

オブジェクトのresultSetタイプは、呼び出している特定の RPC によって異なります。

AutoBean インターフェース

AutoBean を使用してこの JSON をデシリアライズしたいと思います。このオブジェクトを次のように表現しようとしています。

内に存在する可能性のある各タイプのオブジェクトを表す適切なインターフェイスも作成しましたresultSet。最後に、 への適切な呼び出しを設定しますAutoBeanCodex.decode

コードの実行

このコードを開発モードで実行しようとすると、次のスタック トレースがコンソールに表示されます。

このスタック トレースに基づいて、私の推測は次のとおりです。

  1. 型消去によりRpcResults.getResultSet()、 raw を返しているように見えListます。
  2. AutoBean デシリアライザはObject、 内の各アイテムのインスタンスを作成しようとしますresultSet
  3. 失敗

再質問

これを簡単に行えるようにするために、AutoBean API に何か欠けているものはありますか? そうでない場合、調査すべき明らかな攻撃ポイントはありますか? 私がやっていることに対するより賢明な代替手段はありますか (私が既に使用している JSONParser と JavaScriptObject 以外に)?

0 投票する
1 に答える
739 参照

gwt - リスト>AutoBeanFactoryで

RequestFactoryの外部でAutoBeanFactoryを使用して、JSONとの間でオブジェクトを変換しています。非常にうまく機能していますが、NullPointerExceptionでコーデックスをクラッシュさせるタイプのオブジェクトを追加したばかりで、その理由はわかりません。

私はGWT2.2.0を使用しています。

オブジェクトクラス:

ファクトリークラス:

を呼び出すとAutoBeanCodex.encode(anInstanceOfAnImplementationOfPolicy)、NullPointerExceptionが発生します。

AutoBeanCodexはvisitCollectionPropertyをもう一度呼び出す必要があるようです。したがって、これはGoogleの問題に値するバグである可能性があります。一方で、私が何か間違ったことをしているのかもしれません。あるいは、これは明示的にサポートされていません。

私は誰かがこれについていくらかの経験を持っていること、またはBobVが提案を持っていることを望んでいます:)

0 投票する
2 に答える
6248 参照

json - インターフェイスの代わりにPOJOクラスを使用するGWTAutoBean

誰かが私の問題の簡単な解決策を提案してくれることを願っています。

私はPOJOを持っています、言います:

GWTのAutoBean機能を使用してこのBeanをJSONにシリアル化/逆シリアル化したいのですが、AutoBeanはインターフェースを必要とします。

AutoBeanFactoryを設定しています:

ファクトリとPersonインターフェースを使用して、JSONPersonを逆シリアル化できます。

ただし、PersonインターフェイスをPersonクラスに置き換えると、「com.xxx.xxx.Personはインターフェイスではありません」というAutoBeanFactoryGenerator例外が発生します。

単純なPOJOでAutoBeanのシリアル化/逆シリアル化を使用するにはどうすればよいですか?

0 投票する
2 に答える
1598 参照

gwt - GWT Autobeans / NoClassDefFoundError: 何が間違っていますか?

Autobeansを使用してGWTPOJOJSONシリアライズしようとしています。これは、 Placeのトークン化のコンテキストにあります。NoClassDefFoundErrorClassNotFoundExceptionorg.json.JSONObject

問題を切り分けるために JUnit テストを作成しました。テストは次のとおりです。

そして私のスタックトレースは

そして、ここに関連するトークナイザーのビットがあります:

Autobeans インクルードを .gwt.xml に追加しましたが、まだ何かが足りないようです。

0 投票する
1 に答える
1431 参照

json - GWTAutobeanJSON仕様

GWTクライアントでAutobeanを使用してPOJO(RequestBuilderから送信)をシリアル化したが、その要求を処理するためにgroovy、perl、またはphpを使用する予定の場合、Autobeanのシリアル化形式を知る必要があります。

AutobeanのJSON形式の仕様はどこで入手できますか?

0 投票する
2 に答える
1270 参照

java - GWT AutoBean をダウンキャストする方法はありますか?

AutoBeans を使用して、GWT-RPC 以外の Java ベースの Web サービスからの JSON データをマップしています。1 つのマッピングを除いて、これまでのところすべてが機能しています。

サーバー側では、クラスにはタイプ Map のプロパティがあり、MyAbstractParentObject は約 15 の異なる子クラスの親クラスです。

それをクライアントの対応する AutoBean インターフェイスにマップすると、デコード後に MyAbstractParentObject をその子型にダウンキャストできません。AutoBeans がポリモーフィックをサポートしているかどうかを確認するために、GWT のドキュメントと「Google」を隅々まで調べましたが、どちらの方法でも答えが得られませんでした。インターセプターとカテゴリーはこれを処理できないようです。ゲッター/セッターではないインターフェースに存在させたいメソッドだけです。

JSON データの type フィールドを使用して子クラスのインスタンスを作成する回避策を試みていましたが、AutoBean では生の JSON にアクセスできません。デバッガーでは保護されたフィールドとして表示されますが、 'データ'。元の Bean をデコードしようとすると、MyAbstractParentObject のフィールドしかありません。

私が見ることができる唯一の選択肢は次のとおりです。

  1. JSON をデコードするときに MyAbstractParentObject の子を適切に処理できる独自の AutoBeanCodex を拡張または作成します。
  2. MyAbstractParentObject AutoBean で未加工の JSON にアクセスする方法を見つけ、それを使用してその場で子クラスのインスタンスを作成およびインスタンス化します。
  3. GWTProJSONSerializer や piriti などの他の JSON-GWT シリアル化フレームワークに切り替えます。

どんな助けでも大歓迎です。

0 投票する
1 に答える
382 参照

gwt - Autobeanカテゴリは開発モードではうまく動作しますが、GWTコンパイル時に失敗します

このコードは開発モードで正常に実行されますが、gwtコンパイル時の例外を除いて失敗します。どうしてか分かりません。MechanicCategoryクラスはパス上にあり、Eclipseで適切にコンパイルされ、すべてdevモードで適切に実行されますが、gwtのコンパイルに失敗します...:-/何か考えはありますか?

0 投票する
0 に答える
392 参照

gwt - 日付の autobean エンコーダーとデコードをオーバーライドする方法

私がやりたいことは、ISO 8601 を使用してカスタム エンコーダー/デコーダーを追加することです。GWT ビルドのカスタム バージョンを作成することはできると思いますが、これは便利ではありません...何かアイデアはありますか? ありがとう!

0 投票する
2 に答える
2585 参照

java - GWT AutoBeanへのシリアル化中にLinkedHashMapの順序を維持するにはどうすればよいですか?

MapHashMapおよびLinkedHashMapを AutoBean ファクトリのタイプとして使用してみましたが、シリアル化した後は常に初期要素の順序が変更されています。

ArrayList注文データを保持する追加を送信したくありません。AutoBean に順序を維持させる方法はありMapますか?

0 投票する
0 に答える
494 参照

java - GWT autobeans と日付

AutoBeans を使用しようとしています。「2011-12-08T10:07:24.247-05:00」などの日付を持つ json を Bean の Date 変数に解析していますが、StringQuoter.tryParseDate() は常に null を返します。また、文字列「2011-12-08」がある場合、@Mapping(value = "date", format = "dd.MM. yyyy")、ここに示すようにhttp://code.google.com/p/piriti/wiki/ExternalMappings