【发布时间】:2017-11-10 18:43:24
【问题描述】:
首先我要为我使用术语表示歉意,因为我对使用 Json 对象和数组还很陌生。
我已经搜索了可以从 Json 对象中提取数据的各种示例,但没有一个与我所处的情况相似。我正在尝试提取字符串“Plan A(经济计划)”、“Plan B( Deluxe Plan)”和“Plan C (Ramadan)”来自以下 Json:
{
"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,因为这需要更多的工作?
以下是我为实现这一目标所遵循的步骤:
- String APIUrl = "API 的 URL"
- 我将 APIUrl 与必要的数据一起发送到 DataAPI 类,该类扩展 AsyncTask 并发送 Http POST 请求。
- 存储在字符串 JsonResult 中的服务器响应。
- 然后我从字符串中创建了一个 jsonObject 并检查是否有
jsonObject.getString("status").equals("success") - 我在这里卡住了,因为我不知道是否有办法提取所需的字符串(“1:Plan A(经济计划)”,“2:Plan B(豪华计划)”,和“3:C 计划(斋月)”),以便我可以拆分(“A 计划(经济计划)”、“B 计划(豪华计划)”和“C 计划(斋月)”)并放入 Android 微调器。
非常感谢您的帮助,如果您需要任何更改或我需要在帖子中包含的内容,请告诉我。
【问题讨论】:
-
由于计划的数量可以改变你不能将那个json转换成pojo,我认为你应该使用
Map,你可以看一个类似于你的问题的例子here
标签: java android arrays json android-spinner