如何解析地点详情 API JSON

How to parse Place Details API JSON

我试图获取 "formatted_phone_number" 的值,但每次它 returns 为空。虽然它适用于某些键,例如 "formatted_address".

我正在使用 org.json.JSONObject

这是我的代码 -

    JSONObject jObject = null;   
    String result = null;
    try {
        jObject = new JSONObject(jsonData);
        JSONObject jObjectResult = (JSONObject) jObject.get("result");
        result = jObjectResult.getString("formatted_phone_number");

    } catch (JSONException e) {
    } catch (Exception e) {
    }
}

示例JSON 数据 - https://developers.google.com/places/web-service/details

让我知道我在这里做错了什么,还有什么更好的方法吗?

我写了代码作为你的问题,并根据 link 使用 JSON。他们工作得很好。建议您调试您输入的 jsonData 数据内容。

无论如何,对于使用 GSON,如下所示(基于您正在检查的 JSON 格式。

定义匹配 JSON

的 class 模型对象
public class MyData {
    Result result;

    Result getResult() {
        return result;
    }
}

public class Result {
    String formatted_phone_number;

    String getPhone() {
        return formatted_phone_number;
    }

}

然后如下使用。

    MyData mydata = new Gson().fromJson(jsonData, MyData.class);
    String myPhone = mydata.getResult().getPhone();

您会将数据自动解析到您的对象中。当您扩展 class 模型结构(例如 formatted_address、评级等)时,您也会神奇地获得它们。希望这可以减轻您的工作负担。干杯!