私がアクセスしているAPIの下のJSON出力を使用して、長い都市名「Southwest Portland」にアクセスするにはどうすればよいですか?オブジェクトや配列が非常に深くネストされているため、問題が発生しています。JSONの完全な配列/オブジェクトから文字列を抽出するのに役立つ
JSON:ここ
{
"results" : [
{
"address_components" : [
{
"long_name" : "3229-3353",
"short_name" : "3229-3353",
"types" : [ "street_number" ]
},
{
"long_name" : "Southwest Dolph Court",
"short_name" : "SW Dolph Ct",
"types" : [ "route" ]
},
{
"long_name" : "Southwest Portland",
"short_name" : "Southwest Portland",
"types" : [ "neighborhood", "political" ]
},
{
"long_name" : "Portland",
"short_name" : "Portland",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Multnomah County",
"short_name" : "Multnomah County",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Oregon",
"short_name" : "OR",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
},
{
"long_name" : "97219",
"short_name" : "97219",
"types" : [ "postal_code" ]
}
],
は、以下のことをコーディングの私の15+の試みの一つです。毎回、私は何か違うものを手に入れます。私は非常に近いです、私はちょうどすべてのアドレスの構成要素がそのタイトルにlong_nameとshort_nameを持っているので、どのように近所の名前を引き出すかを考え出すことができません。ご協力ありがとうございました!
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
try {
String message = "";
JSONObject jsonObject = new JSONObject(result);
String JSONresults = jsonObject.getString("results");
Log.i("JSON content", JSONresults);
JSONArray arr = new JSONArray(JSONresults);
for (int i = 0; i < arr.length(); i++) {
JSONObject jsonPart = arr.getJSONObject(i);
String neighborhoodLong = "";
String neighborhoodShort = "";
neighborhoodLong = jsonPart.getString("long_name");
neighborhoodShort = jsonPart.getString("short_name");
if (neighborhoodLong != "" && neighborhoodShort != "") {
message += neighborhoodLong + ": " + neighborhoodShort;
}
}
if (message != "") {
Log.i("neigh", message);
//insert succesful code here
} else {
//unsuccesful code goes here
}
} catch (JSONException e) {
//error code here
}
}
文字列を比較するために '.equals(Object)'を使用してください。 –
これはうまくいくでしょうが、近傍が変わり、それが何であるか常に分かっていません。基本的に私は座標を入れて、GoogleのAPIは私に近所の名前を教えてくれます。私は近くの名前にアクセスしようとしているので、私はそれを私のアプリに表示することができます – user3552105