1) Скачаем Gson библиотеку и добавим ее в проект.
Используем метод класса Gson fromJson(String json, Class<ListOfSongs> classOfT) на вход строка и литерал класса
Зайдем еще раз в Propities -->Java Built Path --> Order & Export и поменяем порядок следования
на такой как на картинке
1)gson
2)Android Dependencies
3)Android Private Libraries
4) src
5)gen...
Вывод
- Скачиваем отсюда
- Добавляем в проект JAR
- Kликаем на папку с проектом в Eclipse
- Properties
- Java Built Path
- Переходим на вкладку Libraries
- Add External JARs и находите место куда сохранили JAR
2)Создаем класс соответствующий JSON-у
Структура JSON-а
{ "songs": [ { "id": "1", "singer": "Eminem feat. Rihanna", "song_name": "The Monster" }, { "id": "2", "singer": "Katy Perry feat. Juicy J", "song_name": "Dark Horse" }, { "id": "3", "singer": "Stromae", "song_name": "Tous Les Mêmes" }, { "id": "4", "singer": "Imany", "song_name": "You Will Never Know" } ] }
- Теперь создадим класс Song и еще один ListOfSongs (имена переменных должны точно соответсвовать ключам в json или быть помечены аннотацией ) полное описание.
Класс Song
package com.javaandroidxml.songs; import com.google.gson.annotations.SerializedName; public class Song { public String id; public String singer; //Пример с неточным соответствием переменной ключу json-а но анотации //говорит какому ключу jsona соответствует переменная songName @SerializedName("song_name") public String songName; }
Класс ListOfSongs
package com.javaandroidxml.songs; import java.util.ArrayList; public class ListOfSongs { ArrayList<Song> songs; public ArrayList<Song> getSongs() { return songs; } public void setSongs(ArrayList<Song> songs) { this.songs = songs; } }
Используем метод класса Gson fromJson(String json, Class<ListOfSongs> classOfT) на вход строка и литерал класса
package com.javaandroidxml.songs; import com.google.gson.Gson; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Gson gson=new Gson(); String response="{\"songs\":[{\"id\":\"1\",\"singer\":\"Eminem feat. Rihanna\",\"song_name\":\"The Monster\"},{\"id\":\"2\",\"singer\":\"Katy Perry feat. Juicy J\",\"song_name\":\"Dark Horse\"},{\"id\":\"3\",\"singer\":\"Stromae\",\"song_name\":\"Tous Les Mêmes\"},{\"id\":\"4\",\"singer\":\"Imany\",\"song_name\":\"You Will Never Know\"}]}"; ListOfSongs listOfSong=gson.fromJson(response, ListOfSongs.class); for(Song song:listOfSong.getSongs()) System.out.println("id :"+song.id+"singer :"+song.singer+"song name :"+song.songName); } }
Зайдем еще раз в Propities -->Java Built Path --> Order & Export и поменяем порядок следования
на такой как на картинке
1)gson
2)Android Dependencies
3)Android Private Libraries
4) src
5)gen...
Вывод