如何从 json 数组中获取 Json 对象并将它们与模型 class 一起使用

how to get Json objects from json array and use them with model class

我想 link 我收到的 json 数据到我的 pojo class 使用 gson library.I 使用 volley 库接收 data.What 我应该怎么做这样每当我从我的 pojo class 调用 getter 方法时,我就会收到接收到的 json 数据。

我的Json数据就是这种格式。

{
 "vichList":[ {
            id=1,
            username="abc....},
            {....},
            ]
}

我想将此 json 数据放入我的 pojo class。

Vich.java

public class GetfeedResponse {
private List<Vich> vichList;

public List<Vich> getVichList() {
    return vichList;
}

public void setVichList(List<Vich> vichList) {
    this.vichList = vichList;
}
}

Vich.java

public class Vich {
private int id;
private String username;
private String full_name;
private String createdAt;
private int vich_id;
private String vich_content;
private String city;
private int like_count;

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getFull_name() {
    return full_name;
}

public void setFull_name(String full_name) {
    this.full_name = full_name;
}

public String getCreatedAt() {
    return createdAt;
}

public void setCreatedAt(String createdAt) {
    this.createdAt = createdAt;
}

public int getVich_id() {
    return vich_id;
}

public void setVich_id(int vich_id) {
    this.vich_id = vich_id;
}

public String getVich_content() {
    return vich_content;
}

public void setVich_content(String vich_content) {
    this.vich_content = vich_content;
}

public String getCity() {
    return city;
}

public void setCity(String city) {
    this.city = city;
}

public int getLike_count() {
    return like_count;
}

public void setLike_count(int like_count) {
    this.like_count = like_count;
}
}

这里我使用 volley 库得到 json 响应。

httpUtil.getrequest(url,this,new VolleyCallback(){

        @Override
        public void onSuccess(String result){

            GetfeedResponse getfeedResponse = new GetfeedResponse();
           // for(Vich vich : getfeedResponse.getVichList()){
           // }

            Log.d("Response Result:",result);
        }

如何从 json 数组中获取对象并在 pojo class 的帮助下使用它们?

使用 Gson

在您的 gradle 中添加以下依赖项:

implementation 'com.google.code.gson:gson:2.8.5'

在你的onSuccess()

GetfeedResponse getfeedResponse=new Gson().fromJson(result, GetfeedResponse.class);

如果您想使用 Volley 和 POJO,最好使用自定义 GSON 请求。检查此 link :Custom GSON request With Volley

GSON:

GetfeedResponse parsed = new Gson().fromJson(response, GetfeedResponse.class);

杰克逊:

GetfeedResponse parsed = new ObjectMapper().readValue(response, GetfeedResponse.class);

此外,如果您只想转换 Vich 项目列表(并且您相应地删除了 JSON),您可以执行以下操作:

[ {
id=1,
username="abc....},
{....},
]
List<Vich> viches = Arrays.asList(new Gson().fromJson(vichItemsJson, Vich[].class));