java - 如何解析地点详细信息 API JSON

标签 java android json google-places-api

我试图获取“formatted_phone_number”的值,但每次它都返回 null。尽管它适用于某些键,例如“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

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

最佳答案

我编写了代码作为您的问题,并按照链接使用 JSON。它们工作得很好。建议您调试您输入的jsonData数据内容。

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

定义与JSON匹配的类模型对象

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();

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

关于java - 如何解析地点详细信息 API JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35190662/

相关文章:

java - 从文本文件填充多维数组

javascript - 通过 Phonegap 在 Android 中以编程方式设置静默模式

java - 如何将json对象日期解析为Android

java - 将应用程序部署到 Heroku;不支持的主要版本.次要版本 51.0 错误

java - 如何在外部存储中创建目录?

java - 如何处理 Java 计算器的按键操作?

android - 在Gradle构建中运行AspectJ和Firebase性能监视

android - 我如何在 android 中实现 SlideShow?

javascript - 在谷歌地图中显示 JSON 响应(纬度、经度)

PHP 计数 JSON 数组