Json 객체 및 배열을 사용하는 데있어 처음 사용하기 때문에 용어 사용에 대해 사과하고 싶습니다.API에서 얻은 JSON 형식의 데이터 추출 (Java)
Json 개체에서 데이터를 추출 할 수있는 다양한 예제를 검색했지만 현재 상황과 유사하지 않습니다. "Plan A (경제 계획)", "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의 회 전자에 다양한 "계획"을 동적으로 배치합니다. 현재는 값을 회 전자에 하드 코딩했지만 계획 수는 변경 될 수 있으며 매번 하드 코딩하지 않으려 고합니다.
Json 객체의 형식은 API가 이와 같은 방식으로 작성된 것이기 때문에 평소와 약간 다릅니다. API를 변경해야하는 대신 다른 계획을 추출하는 방법이 있습니까?
아래 난이 달성하기 위해 수행 한 단계는 다음과 같습니다
- 문자열 APIUrl는 =
- 내가 AsyncTask를 확장하는 클래스 DataAPI에 필요한 데이터와 함께 APIUrl를 보낸다 "API의 URL"을 Http POST 요청을 보냅니다.
- 서버 응답이 String JsonResult에 저장됩니다.
- 문자열에서 jsonObject를 만들고 확인했는지 여부
jsonObject.getString("status").equals("success")
- 필요한 문자열을 추출하는 방법이 있는지 모르겠다는 이유로 여기다 있습니다 ("1 : 계획 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