3

こんにちは、JsonObject から要素の値を取得しようとしています。私は Gson ライブラリで Java を使用しています。

コードの関連部分は次のとおりです。

String s = "http://maps.googleapis.com/maps/api/directions/json?origin=30.065634,31.209473&destination=29.984177,31.440052&sensor=false";
URL url = new URL(s);

BufferedReader r = new BufferedReader(new InputStreamReader(
    ((HttpURLConnection) url.openConnection()).getInputStream()));

JsonStreamParser jsp = new JsonStreamParser(r);

JsonParser jp = new JsonParser();

JsonElement jsonElement =  jp.parse(r);

JsonObject jsonObject = jsonElement.getAsJsonObject();

System.out.println(jsonObject.get("summary"));

ここにJsonの一部があります:

"status": "OK",   "routes": [ {
    "summary": "Mehwar Al Moneeb",
    "legs": [ {
      "steps": [ {
        "travel_mode": "DRIVING",
        "start_location": {
          "lat": 30.0655100,
          "lng": 31.2096600
        },
        "end_location": {
          "lat": 30.0654400,
          "lng": 31.2096000
        },
        "polyline": {
          "points": "mdovDksn}DLJ",
          "levels": "BB"
        },
        "duration": {
          "value": 1,
          "text": "1 min"
        },
        "html_instructions": "Head \u003cb\u003esouthwest\u003c/b\u003e on \u003cb\u003eOmar Toson\u003c/b\u003e toward \u003cb\u003eMohammed Roshdi\u003c/b\u003e",
        "distance": {
          "value": 9,
          "text": "9 m"
        }
      }

一番上の要素「ルート」を取得すると、要素の内部が表示されますが、たとえば、示されているように要素「概要」を取得しようとすると、戻り値はnullであり、出力に表示されるものです。その後、その値を取得できません。どうしたの?JsonElementの値を取得するにはどうすればよいですか? できるだけ早く返信してください。前もって感謝します。

4

1 に答える 1

0

Routes は JavaScript 配列です。Summary はその配列の最初のオブジェクトのプロパティであるため、jsonObject.getAsJsonArray("routes").get(0).get("summary");または同等のものを使用する必要があります。私はあなたのJavaライブラリを扱っていませんが、JSコードはjsonObject.routes[0].summary

編集: GSON ドキュメントと更新されたコードを検索しました。

于 2010-12-13T02:02:18.743 に答える