多くのサイトを検索しましたが、問題の解決策が見つかりませんでした。基本的に私の要件は少しトリッキーで、私自身が不可能だと感じることがあります。誰でも私を助けることができますか?
私の要件は、インターフェイスから継承される 3 つのクラスがあることです。次の構造を持つ JSON 配列を作成したいと思います。
interface i {
}
class A implements i {
field l;
field 2;
}
まず、私の問題を解決することに関心をお寄せいただきありがとうございます。質問で言及したすべてのオブジェクトは、データベース永続オブジェクトです。連絡先オブジェクト、通信オブジェクト、およびアドレス オブジェクトがあり、すべて db 永続オブジェクトです。単一の連絡先には、複数の通信と複数のアドレスがあります。そのため、連絡先はテーブルに保持され、連絡先の一意の識別子を参照して、2 つの異なるテーブルに連絡先とアドレスが保持されます。
連絡表:
id ファーストネーム ラストネーム
3 xyz abc
通信テーブル:
id contactID 番号
1 3 999999999
アドレス テーブル:
id contactid 場所 1 3 インド
データベースに永続化した後、リクエストでサーバーに送信するjson配列を作成したいと思います。
final Collection<Syncable> collection = new ArrayList<Syncable>();
collection.add(contact);
collection.add(comm);
collection.add(address);
result = HttpRestUtil.post(url,*** new Gson().toJson(collection)***,JSON,header );
Gson().toJson(collection) は、サーバー側で送信したい json を文字列で返します。文字列は次のようになります
[{"firstname":"xyz","lastname":"abc"}, //contact
{"number":"99999999"}, //communication
{"place":"india"} //address
]
しかし、私のサーバーは、フォーマットのjsonを取る実装されています
[ {"firstname":"xyz",
"lastname":"abc",
{"number":"999999999"}
{"place":"india"}
}]
サーバーはjson全体が連絡先、通信、アドレスのオブジェクトに逆シリアル化されるようにコーディングされています
今回の質問ではっきりしているといいのですが、もう一度、どうもありがとう
class B implements i {
field 3;
field 4;
}
class C implements i {
field 5;
field 6;
}
今、次の形式の JSON 配列が必要です。この JSON はタイプ A です
[
"field1": "value",
"field2": "value",
"objectB": "{ 'field3':'value','field4':'value'}",
"objectC": "{ 'field5':'value','field6':'value'}"
]
私の要件はBで、CクラスはAクラスのフィールドでなければなりません。
私に解決策を与えることができる1つの方法は、BおよびCクラスをAの内部クラスにすることですが、私のオブジェクト構造はそれを許可しません。これは非常に高く評価されています。
前もって感謝します