だから私は場所の「名前」をキーにしてハッシュマップにplace_idを格納します。Googleの場所の詳細「photos []」jsonarrayは常にnullです
private HashMap<String, String> placeTitleId = new HashMap<>();
if (!place.isNull("place_id")) {
placeId = place.getString("place_id");
placeTitleId.put(name, placeId);
}
その後、私は場所の詳細検索のURLを作成します。
private String createPlaceDetailsUrl(String placeId) {
StringBuilder stringBuilder = new StringBuilder("https://maps.googleapis.com/maps/api/place/details/json?");
stringBuilder.append("placeid=").append(placeId);
stringBuilder.append("&key=").append(GOOGLE_PLACES_API_KEY);
return stringBuilder.toString();
}
は最後に、私は、JSONレスポンスを解析:なぜ「写真私は理解していない何
JSONObject data = new JSONObject(result);
if (data.getString("status").equalsIgnoreCase("OK")) {
JSONArray photoArray = data.getJSONArray("photos");
}
です"json配列に値がありません Androidモニター:W/System.err:org.json.JSONException:写真に値なし
ドキュメントにはphotos [] jsonarrayに最大10枚の写真があるはずです。しかし、jsonの出力スキーマにはphotos []オブジェクトが含まれていません。 place_idを取得する方法や応答を解析する方法に問題がありますか?
EDIT:
result {
"address components" : [
*bunch of stuff*
]
...
"geometry" : {
*bunch of stuff*
}
"icon"
"id"
"photos" : [
{
"height"
"html_attributions:
"photo_reference!!
}
{
...
"photo_reference!!
}
*bunch more of these*
]
}
EDIT: 修正はJSONオブジェクトを取得している「結果
JSONObject jsonObject = new JSONObject(result);
JSONObject data = new JSONObject("result");
私はその要旨を提供することができます
"結果" の文字列が非常に長いですが、
データオブジェクトに「画像」があります
中に存在するかどうかを決定するために
注
使用
?あなたはおそらくそこでデバッグし、その中に '写真'についてsomethigがあるかどうかチェックします。 – procrastinator
My JSONDataには、場所の詳細要求によって返された1つの場所の詳細が含まれています。ドキュメントによると、 "写真"オブジェクトにはある程度の価値があるはずです。私は複数の場所もテストしましたが、それらはすべて空の "写真"オブジェクトを返します。 – user3131097
ブラウザでサーバーに渡しているURLをヒットし、実際に '写真 'が含まれているかどうかを確認します。 – procrastinator