2

次のようなキーと値のペアの配列があります。

{
  "320x240":"http:\/\/static.example.com\/media\/content\/2012\/Jul\/mercedes-benz-a-klasse-red-t_320x240.jpg",
  "300x225":"http:\/\/static.zigwheels.com\/media\/content\/2012\/Jul\/mercedes-benz-a-klasse-red-t_300x225.jpg",
  "200x150":"http:\/\/static.zigwheels.com\/media\/content\/2012\/Jul\/mercedes-benz-a-klasse-red-t_200x150.jpg"
}

私が現在やっていることはこれです:

   try {

      images_object = new JSONObject(imageList);//imageList is a String of the above array //of key value pairs

            Iterator<?> keys = images_object.keys();
            String string_images = "";
           if(keys.hasNext()) {
               String key = (String)keys.next();
                String value = (String)images_object.get(key);
                string_images = "[" + value;  
           }
            while( keys.hasNext() ){
                String key = (String)keys.next();
                String value = (String)images_object.get(key);
                string_images = string_images + "," + value;

            }
            string_images = string_images + "]";
            String encoded_json_string = JSONObject.quote(string_images);
            images = new JSONArray(encoded_json_string);//images is of type JSONArray but it is null
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

しかし、画像はNULLです。なぜですか?私は何が欠けていますか?

4

1 に答える 1

4

JSONObject次のように現在の値からすべての値を取得できますJSONArray

Iterator<String> keys = images_object.keys();
JSONArray images = new JSONArray();
while( keys.hasNext() ){
    String key = keys.next();
    String value = images_object.optString(key);
    //add value to JSONArray from JSONObject
    images.put(value);
}

編集

単純化された解決策はキーを取得することであり、キーをメソッドにimages_object.names()渡してキーに関する値を取得できますJSONArraytoJSONArrayJSONArray

JSONArray keys=images_object.names();
JSONArray values=images_object.toJSONArray(keys);

単純化されたソリューションを要約すると、次のようになります。

JSONArray images=images_object.toJSONArray(images_object.names());
于 2013-05-09T05:31:01.087 に答える