Как распарсить 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 шт):

Автор решения: Andrew

Для начала нужно сгенерировать классы-модели для всех данных которые вы принимаете. Код который представлен ниже создан при помощи данного сервиса:

-----------------------------------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 который вы можете обработать необходимым вам образом. Вот есть туториал по работе с данной либой.

→ Ссылка