我试图获取“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/