私は方向時間を取得するためにGoogle MapsのAPIを使用しようとしています。私は、URLを作成し、JSON応答を取得し、旅行時間のその応答を調べることを望んでいます。 JSONオブジェクトを作成した後、私はそれをナビゲートするのが難しいです。私にとっては、これは、私が応答を得ることを迷惑にしているか、JSONオブジェクトをナビゲートしていることを示しています。あなたがウェブ上のチュートリアルから一緒に縫い合わせたコードの断片を覗き見ることができたら、私はそれを感謝します。JSONの構文解析
このコードは、応答を取得することを意図しています。それはtry/catchで囲まれており、エラーは発生していません。
String stringUrl = <URL GOES HERE>;
URL url = new URL(stringUrl);
HttpURLConnection httpconn = (HttpURLConnection)url.openConnection();
if (httpconn.getResponseCode() == HttpURLConnection.HTTP_OK)
{
BufferedReader input = new BufferedReader(new InputStreamReader(httpconn.getInputStream()),8192);
String strLine = null;
while ((strLine = input.readLine()) != null)
{
response.append(strLine);
}
input.close();
}
String jsonOutput = response.toString();
このコードは、その出力を取得し、同様の問題のためにthis stackoverflow answer触発され、最終列、持続時間、にそれを解析することを意図しています。
JSONObject jsonObject = new JSONObject(jsonOutput);
JSONObject routeObject = jsonObject.getJSONObject("routes");
JSONObject legsObject = routeObject.getJSONObject("legs");
JSONObject durationObject = legsObject.getJSONObject("duration");
String duration = durationObject.getString("text");
2番目のブロックの2行目でJSON例外を捕捉しています。誰でもこれを解決するのに役立つことができますか?または、同じデータを取得する簡単な方法を提案してください。
EDIT:(aromeroから)ここで最初の投票回答のおかげで、後半は今のようになります。
JSONObject jsonObject = new JSONObject(responseText);
JSONArray routeObject = jsonObject.getJSONArray("routes");
JSONArray legsObject = routeObject.getJSONArray(2); ***error***
JSONObject durationObject = legsObject.getJSONObject(1);
String duration = durationObject.getString("text");
しかし、それはまだJSONの例外をスローして、今だけ、それは第三行の後です。これは恥ずかしいほど簡単に解決できると確信していますが、本当に助けていただければ幸いです。
例JSONファイルの関連部分を以下に示す:
{
"routes" : [
{
"bounds" : {
"northeast" : {
"lat" : 34.092810,
"lng" : -118.328860
},
"southwest" : {
"lat" : 33.995590,
"lng" : -118.446040
}
},
"copyrights" : "Map data ©2011 Google",
"legs" : [
{
"distance" : {
"text" : "12.9 mi",
"value" : 20807
},
"duration" : {
"text" : "27 mins",
"value" : 1619
},
私はあなたが私が間違ってやっているものを同定したと思います。まだ詳細をアイロンしている。誰かがそれに気づかない限り、私はそれを修正するときに私はポストバックします。 – user714403
ルートは配列です。可能なルートのリストをGoogleから返すと仮定します。だからあなたはそれらの1つをつかむか、それらのすべてで何かをする必要があります。あなたは何をしようとしているのですか? – aromero
驚くばかり!オリジナルの回答を編集していただきありがとうございます。本当にありがとうございます。私は本当にJSONの構文/スペーシングを理解していませんでした。どうもありがとう! – user714403