为了账号安全,请及时绑定邮箱和手机立即绑定

使用 GSON 将 JSON 响应映射到 Java POJO 类

使用 GSON 将 JSON 响应映射到 Java POJO 类

慕神8447489 2021-11-11 14:06:56
我正在尝试使用 Gson 库将下面的 JSON 映射到 POJO 类。下面是 JSON 响应和 POJO 类以及完成的映射import java.util.Map;import com.google.gson.JsonElement;public class DataResponse {    private String $status;    private Map<String, JsonElement> $payload;    public String get$status() {        return $status;    }    public void set$status(String $status) {        this.$status = $status;    }    public Map<String, JsonElement> get$payload() {        return $payload;    }    public void set$payload(Map<String, JsonElement> $payload) {        this.$payload = $payload;    } }这是示例 JSON。{  "$status": "OK",  "$payload": {    "$nextStart": "123",    "$results": [      {        "$key": "101",        "score": 3,        "to": "Test1"      },      {        "$key": "102",        "score": 4,        "to": "Test2"      },    ]  }}下面是映射完成。POJO 类定义是否存在问题。因为我无法将 JSON 响应的所有元素映射到响应中的最内层元素。感谢您提供有用建议的支持。Gson gson = new Gson();                        DataResponse dataResponse = gson.fromJson(EntityUtils.toString(response.getEntity()),                                DataResponse.class);
查看完整描述

1 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

在处理编组和解组时,将模型定义为:


public class DataResponse {


    private String $status;

    private Payload $payload;

   // getters and setters

}


class Payload {

    private String $nextStart;

    private List<Result> $results;


    // getters and setters

}



class Result {

    private String $key;

    private String score;

    private String to;


    // getters and setters

}

现在,当您将 json 转换为 POJO 时:


Gson gson = new Gson(); 

DataResponse dataResponse = gson.fromJson(EntityUtils.toString(response.getEntity()), DataResponse.class);

它可以很容易地转换它。


另外,相信我,它有利于在您的进一步代码中进行处理!


更新:如果您真的想将 json 转换为 Map,那么您可以执行以下操作:


import java.lang.reflect.Type;

import com.google.gson.reflect.TypeToken;


Type type = new TypeToken<Map<String, String>>(){}.getType();

Map<String, String> myMap = gson.fromJson("{'key':'value'}", type);

在那里替换 json 字符串。


查看完整回答
反对 回复 2021-11-11
  • 1 回答
  • 0 关注
  • 170 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信