私はJsonのオブジェクトと配列を扱うのにかなり新しいので、まず用語の使用についてお詫びしたいと思います。JAVAのAPIから得られたJSON形式からデータを抽出する
私はJsonオブジェクトからデータを抽出することができるさまざまな例を検索しましたが、私の状況と似ていません。文字列「Plan A(Economy Plan)」、「Plan B (デラックスプラン)は、次のJSONから」、および 『プランC(ラマダン)』:
{
"status": "success",
"data": {
"1:Plan A (Economy Plan)": [{
"idscheme": "49",
"plan_name": "1",
"plan_id": "ABS-772",
"term": "8",
"payment": "1000",
"amount": "8000",
"expected_amount": null,
"added_by": "2",
"updated_on": "2017-09-27"
}, {
"idscheme": "50",
"plan_name": "1",
"plan_id": "ABS-773",
"term": "8",
"payment": "2000",
"amount": "16000",
"expected_amount": null,
"added_by": "1",
"updated_on": "2017-09-28"
}, {
"idscheme": "48",
"plan_name": "1",
"plan_id": "ABS-762",
"term": "7",
"payment": "4000",
"amount": "28000",
"expected_amount": null,
"added_by": "1",
"updated_on": "2017-09-28"
}],
"2:Plan B (Deluxe Plan)": [{
"idscheme": "33",
"plan_name": "2",
"plan_id": "ABS-486",
"term": "8",
"payment": "2000",
"amount": "16000",
"expected_amount": null,
"added_by": "2",
"updated_on": "2017-09-27"
}, {
"idscheme": "47",
"plan_name": "2",
"plan_id": "ABS-831",
"term": "7",
"payment": "3000",
"amount": "21000",
"expected_amount": null,
"added_by": "2",
"updated_on": "2017-09-27"
}, {
"idscheme": "46",
"plan_name": "2",
"plan_id": "ABS-776",
"term": "7",
"payment": "4000",
"amount": "28000",
"expected_amount": null,
"added_by": "2",
"updated_on": "2017-09-27"
}],
"5:Plan C (Ramadan)": [{
"idscheme": "51",
"plan_name": "5",
"plan_id": "ABS-865",
"term": "7",
"payment": "3000",
"amount": "21000",
"expected_amount": null,
"added_by": "42",
"updated_on": "2017-10-15"
}, {
"idscheme": "52",
"plan_name": "5",
"plan_id": "ABS-389",
"term": "8",
"payment": "4000",
"amount": "32000",
"expected_amount": null,
"added_by": "42",
"updated_on": "2017-10-15"
}, {
"idscheme": "53",
"plan_name": "5",
"plan_id": "ABS-451",
"term": "8",
"payment": "5000",
"amount": "40000",
"expected_amount": null,
"added_by": "42",
"updated_on": "2017-10-15"
}]
},
"plancount": 3
}
は、アイデアは、このJSONオブジェクトは、APIの使用から作成されていることである、と私はしたいですさまざまな「計画」をAndroidのスピナーに動的に配置します。現在、私は値をスピナーにハードコーディングしていますが、その数のプランは変更可能で、毎回ハードコードしたくありません。
APIがこのような方法で構築されているため、Jsonオブジェクトのフォーマットは通常と少し異なりますが、APIを変更する代わりに別のプランを抽出する方法はありますか?以下は
は、私はこれを達成するために従っている手順です。
- 文字列APIUrl =「APIのURL」
- 私はAsyncTaskとを拡張するクラスのDataAPIに必要なデータとともにAPIUrlを送信していますHTTP POSTリクエストを送信します。
- ストリングJsonResultに格納されたサーバー応答。
- これで、文字列からjsonObjectを作成し、それをチェックしたかどうかを確認しました
jsonObject.getString("status").equals("success")
- 必要な文字列を抽出する方法があるかどうかわからないので、 「プランA(エコノミープラン)」「プランB(デラックスプラン)」「3:プランC(ラマダン) 、 "Plan C(Ramadan)")、Androidのスピナーに配置します。
ご協力いただき、ありがとうございました。私が投稿に含める必要がある変更や事柄をご希望の場合は、お知らせください。
Gson gson = new Gson();
YourPojoOfJson yourObjectOfPojo = gson.fromJson(jsonObject,YourPojoOfJson .class);
をそして、あなたのJSONのPOJOに行く作るために:
プランの数が変わることがあるので、そのjsonをpojoに変換できないので、私はあなたが 'Map'を使うべきだと思います。あなたの質問に似た例を見ることができます(https:// stackoverflow .com/questions/47188934/how-to-turn-this-json-response-into-pojo) – Signo