如何解析地点详情 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、评级等)时,您也会神奇地获得它们。希望这可以减轻您的工作负担。干杯!
我试图获取 "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、评级等)时,您也会神奇地获得它们。希望这可以减轻您的工作负担。干杯!