Добавление данных JSON в arrayList - PullRequest
0 голосов
/ 26 июля 2011

Все еще работаю над этой частью моего скрипта, чтобы проанализировать мой JSON jsonArray = new JSONArray(jsonData); и затем добавить его в массив "myJSONArray"

Я не уверен, как будет работать цикл for для добавления моих элементов из jsonArray в myJSONArray (arrayList)

Если я не совсем уверен, пожалуйста, дайте мне знать, и если есть какая-то информация, которую мне не хватает, просто спросите. Заранее спасибо.

Данные JSON:

{"id":["1","2","3"],"name":["Dragon","Butterfly","Tattoo"],"thumb":["thm_polaroid.jpg","thm_default.jpg","thm_enhanced-buzz-9667-1270841394-4.jpg"],"path":["polaroid.jpg","default.jpg","enhanced-buzz-9667-1270841394-4.jpg"]}

image_data class:

public class image_data {


    public int id;
    public String name;
    public String thumb;
    public String path;


}

Класс ShowThumb:

public class showThumb extends Activity{



    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.gridlayout);

         Bundle bundle = getIntent().getExtras();
         String jsonData = bundle.getString("jsonData");


         JSONArray jsonArray = null;
        try {
            jsonArray = new JSONArray(jsonData);
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        ArrayList<image_data> myJSONArray = new ArrayList<image_data>();

         for (int i=0; i<jsonArray.length(); i++) {
               **//This is where I think I create the seperate arrays of id name thumb and path**
             myJSONArray.add(new image_data());

         }


GridView gridview = (GridView) findViewById(R.id.gridview);
        gridview.setAdapter(new ImageAdapter(this,image_data));

    }
}

Ответы [ 2 ]

4 голосов
/ 26 июля 2011

Как вы повторяете и добавляете

 for(int i=0;i<jsonArray.length;i++)
    {    
         JSONObject json_data = jArray.getJSONObject(i);
         imgnfo.id =  json_data.getInt("id_key");
         imgnfo.name = json_data.getString("name_key");
         imgnfo.thumb = json_data.getString("thumb_key");
         imgnfo.info = json_data.getString("info_key");
         myArray.add(new image_data());
    }

Просто добавьте правильные имена ключей.Я их не знал.

2 голосов
/ 26 июля 2011

Йо должен опубликовать, как выглядят данные json.Предполагая, что данные json выглядят примерно так:

...,{
    "image_data": {
        "name": "image name","thumb":"thumbpath","path":"path"}
},{
    "image_data": {
        "name": "image name 2","thumb":"thumbpath 2","path":"path 2"}
}

Затем вы извлекаете значения следующим образом:

    ArrayList<image_data> imageArray = new ArrayList<image_data>();

         for (int i=0; i<jsonArray.length(); i++) {
             image_data img = new image_data();

             Object jo = jsonArray.get(i);

             image_data.name = jo.name;
             image_data.thumb = jo.thumb;
             image_data.path = jo.path;

             imageArray.add(new image_data());

         }

Рассмотрите возможность использования методов получения для вашего класса image_data.Также рассмотрите возможность переименования в ImageData

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...