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

我正在尝试使用 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);


慕神8447489
浏览 171回答 1
1回答

慕侠2389804

在处理编组和解组时,将模型定义为:public class DataResponse {&nbsp; &nbsp; private String $status;&nbsp; &nbsp; private Payload $payload;&nbsp; &nbsp;// getters and setters}class Payload {&nbsp; &nbsp; private String $nextStart;&nbsp; &nbsp; private List<Result> $results;&nbsp; &nbsp; // getters and setters}class Result {&nbsp; &nbsp; private String $key;&nbsp; &nbsp; private String score;&nbsp; &nbsp; private String to;&nbsp; &nbsp; // getters and setters}现在,当您将 json 转换为 POJO 时:Gson gson = new Gson();&nbsp;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 字符串。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java