-1

私はAndroidプログラミングに不慣れで、JSONarrayから特定のオブジェクトを取得する方法を知りたいです。

私のJSONは次のようになります:

{"results" : [
  {
     "address_components" : [
        {
           "long_name" : "Contern",
           "short_name" : "Contern",
           "types" : [ "locality", "political" ]
        },

        {
           "long_name" : "Luxembourg",
           "short_name" : "Luxembourg",
           "types" : [ "administrative_area_level_1", "political" ]
        },

        {
           "long_name" : "Luxembourg",
           "short_name" : "LU",
           "types" : [ "country", "political" ]
        }
     ],

     "formatted_address" : "Contern, Luxembourg",

     "geometry" : {
        "bounds" : {
           "northeast" : {
              "lat" : 49.621830,
              "lng" : 6.302790
           },

           "southwest" : {
              "lat" : 49.56759010,
              "lng" : 6.195380
           }
        },

        "location" : {
           "lat" : 49.58515930,
           "lng" : 6.2274880
        },

そして私は場所からlatとlngを抽出したいと思います。私のコードは:

arr = json.getJSONArray("results");
        JSONObject location=arr.getJSONObject(4);
        double lng = location.getDouble("lng");
        double lat = location.getDouble("lat");
4

2 に答える 2

2

あなたのjsonファイルが間違っていると言いたかったのですが、よく見てみると、あなたのコードが悪いと思います:)今すぐ欲しいとは思わないでしょう。この場合の「結果」は JsonArray ですが、プロパティではなく、完全な JsonObjects の配列です! 完全な JsonObject は、address_components、format_address、geometry などを持つオブジェクトです。「location」も「geometry」オブジェクトの一部です。

「結果」配列にオブジェクトが1つしかないことが確実な場合は、次のことができます。

arr = json.getJSONArray("results");
if (arr.length() > 0){
   JSONObject resultObject = arr.getJSONObject(0);
   JSONObject geometry = resultObject.getJSONObject("geometry");
   JSONObject location = geometry.getJSONObject("location");
   double lng = location.getDouble("lng");
   double lat = location.getDouble("lat");
}

結果に複数のオブジェクトがある場合、それらをループして必要なものを見つける必要があると思います。

于 2012-10-29T14:10:19.603 に答える
0

こんにちは、以下のコードを参照してください

JSON 文字列

{
"result": "success",
"countryCodeList":
[
  {"countryCode":"00","countryName":"World Wide"},
  {"countryCode":"kr","countryName":"Korea"}
] 
}

ここでは、国の詳細を取得しています

JSONObject json = new JSONObject(jsonstring);
JSONArray nameArray = json.names();
JSONArray valArray = json.toJSONArray(nameArray);

JSONArray valArray1 = valArray.getJSONArray(1);

valArray1.toString().replace("[", "");
valArray1.toString().replace("]", "");

int len = valArray1.length();

for (int i = 0; i < valArray1.length(); i++) {

 Country country = new Country();
 JSONObject arr = valArray1.getJSONObject(i);
 country.setCountryCode(arr.getString("countryCode"));                        
 country.setCountryName(arr.getString("countryName"));
 arrCountries.add(country);
}
于 2012-10-29T13:54:33.593 に答える