는 :Java의 GoogleDistanceMatrix API에서받은 JSON에서 중첩 값을 추출하는 방법은 무엇입니까? 자바 사용 가능한 코드에 다음 JSON의 수익을 분석하려고
{
"destination_addresses" : [ "New York, NY, USA" ],
"origin_addresses" : [ "Washington, DC, USA" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "225 mi",
"value" : 361951
},
"duration" : {
"text" : "3 hours 51 mins",
"value" : 13876
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
// Parse the whole JSON result.
JSONObject o1 =(JSONObject)JSONValue.parse(outputString);
JSONArray a1 = (JSONArray) o1.get("rows");//2
for (int i = 0; i < a1.size(); i++) {
JSONObject o2 = (JSONObject) a1.get(i);//3
JSONArray a2 = (JSONArray) o2.get("elements");//4
for (int j = 0; j < a2.size(); j++) {
JSONObject o3 = (JSONObject) a2.get(j);//3
JSONArray a3 = (JSONArray) o3.get("distance");//4
for(int k =0; k < a3.size(); k++) {
System.out.println(((JSONObject) a3.get(k)).get(
"text").toString());//5
}
}
}
나는 거리의 텍스트 값에 액세스 할 수 좋아하고 것 또한 텍스트 기간의 값. 나는 거리와 시간에 액세스하는 코드를 발견하지만 난이 줄에이 expection
Exception in thread "main" java.lang.ClassCastException: org.json.simple.JSONObject cannot be cast to org.json.simple.JSONArray
를 얻을 오래된 것들의 예를 다음 루프에 대한 세 번째를 추가 할 때 :
JSONArray a3 = (JSONArray) o3.get("distance");//4
어떤 도움이나에 대한 제안 어떻게 다른 방법으로 그것을합니까? 감사합니다
빠른 응답 @sasikumar 주셔서 감사하지만이다는 에는 getString이 –
가 한 String.valueOf()를 추가 된 JSONObject 유형에 대해 정의되지, 같은 대답 – sasikumar
편집 체크 말한다. 나는 JSONObject가 getString 메소드를 가지고 있지 않다고 생각한다. –