Как распарсить json с помощью gson? на андроид
С сервера получаю такой Json:
{ "sbook": [ { "idS": "1", "til": "Uzb", "janr": "Ertaklar", "nomi": "Kiyik bilan kadi", "yozuvchi": "Ertak", "rasm": "rasm1", "likes": "99", "audio": [ { "idA": "1", "aName": "1 Qism", "aAudio": "audio1" } ] }, { "idS": "2", "til": "Uzb", "janr": "Ertaklar", "nomi": "Yetim Abilay", "yozuvchi": "Ertak", "rasm": "rasm1", "likes": "99", "audio": [ { "idA": "1", "aName": "1 Qism", "aAudio": "audio1" }, { "idA": "2", "aName": "2 Qism", "aAudio": "audio1" } ] }, { "idS": "3", "til": "Uzb", "janr": "Ertaklar", "nomi": "Malikai Husniobod", "yozuvchi": "Ertak", "rasm": "rasm1", "likes": "99", "audio": [ { "idA": "1", "aName": "1 Qism", "aAudio": "audio1" }, { "idA": "2", "aName": "2 Qism", "aAudio": "audio1" }, { "idA": "3", "aName": "3 Qism", "aAudio": "audio1" } ] }, { "idS": "4", "til": "Uzb", "janr": "Ertaklar", "nomi": "Tulki bilan Turna", "yozuvchi": "Ertak", "rasm": "rasm1", "likes": "99", "audio": [ { "idA": "1", "aName": "1 Qism", "aAudio": "audio1" } ] } ] }
Как мне его распарсить с помощью gson?
Меня интересуют полный код.
P.S Можно пример кода?
Ответы (1 шт):
Для начала нужно сгенерировать классы-модели для всех данных которые вы принимаете. Код который представлен ниже создан при помощи данного сервиса:
-----------------------------------com.example.Audio.java-----------------------------------
package com.example;
public class Audio {
private String idA;
private String aName;
private String aAudio;
public String getIdA() {
return idA;
}
public void setIdA(String idA) {
this.idA = idA;
}
public Audio withIdA(String idA) {
this.idA = idA;
return this;
}
public String getAName() {
return aName;
}
public void setAName(String aName) {
this.aName = aName;
}
public Audio withAName(String aName) {
this.aName = aName;
return this;
}
public String getAAudio() {
return aAudio;
}
public void setAAudio(String aAudio) {
this.aAudio = aAudio;
}
public Audio withAAudio(String aAudio) {
this.aAudio = aAudio;
return this;
}
}
-----------------------------------com.example.Example.java-----------------------------------
package com.example;
import java.util.List;
public class Example {
private List<Sbook> sbook = null;
public List<Sbook> getSbook() {
return sbook;
}
public void setSbook(List<Sbook> sbook) {
this.sbook = sbook;
}
public Example withSbook(List<Sbook> sbook) {
this.sbook = sbook;
return this;
}
}
-----------------------------------com.example.Sbook.java-----------------------------------
package com.example;
import java.util.List;
public class Sbook {
private String idS;
private String til;
private String janr;
private String nomi;
private String yozuvchi;
private String rasm;
private String likes;
private List<Audio> audio = null;
public String getIdS() {
return idS;
}
public void setIdS(String idS) {
this.idS = idS;
}
public Sbook withIdS(String idS) {
this.idS = idS;
return this;
}
public String getTil() {
return til;
}
public void setTil(String til) {
this.til = til;
}
public Sbook withTil(String til) {
this.til = til;
return this;
}
public String getJanr() {
return janr;
}
public void setJanr(String janr) {
this.janr = janr;
}
public Sbook withJanr(String janr) {
this.janr = janr;
return this;
}
public String getNomi() {
return nomi;
}
public void setNomi(String nomi) {
this.nomi = nomi;
}
public Sbook withNomi(String nomi) {
this.nomi = nomi;
return this;
}
public String getYozuvchi() {
return yozuvchi;
}
public void setYozuvchi(String yozuvchi) {
this.yozuvchi = yozuvchi;
}
public Sbook withYozuvchi(String yozuvchi) {
this.yozuvchi = yozuvchi;
return this;
}
public String getRasm() {
return rasm;
}
public void setRasm(String rasm) {
this.rasm = rasm;
}
public Sbook withRasm(String rasm) {
this.rasm = rasm;
return this;
}
public String getLikes() {
return likes;
}
public void setLikes(String likes) {
this.likes = likes;
}
public Sbook withLikes(String likes) {
this.likes = likes;
return this;
}
public List<Audio> getAudio() {
return audio;
}
public void setAudio(List<Audio> audio) {
this.audio = audio;
}
public Sbook withAudio(List<Audio> audio) {
this.audio = audio;
return this;
}
}
дальше после того как у вас есть класс, можно использовать Gson. Делается это так: во-первых подключаем библиотеку (версия я думаю есть и поновее):
implementation 'com.google.code.gson:gson:2.8.2'
дальше ваш пришедший json должен хранится в строке, которую потом будет преобразовывать:
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
Example example = gson.fromJson("json", Example.class);
после того как вы получили данный класс у вас есть список List<Sbook> sbook который вы можете обработать необходимым вам образом. Вот есть туториал по работе с данной либой.