我无法通过GSON将json字符串转换为List <t>

时间:2016-01-22 10:49:29

标签: java gson

我希望通过GSON库将Json字符串转换为List。

 public <T> List<T> getModelList(String jsonStr, Class<T> type) {
        Type listType = new TypeToken<ArrayList<T>>(){}.getType();
        List<T> yourClassList = new Gson().fromJson(jsonStr, listType);
        return yourClassList;
    }

我打电话

List<CallDetail> callDetails = Converter.me().getModelList(responseMessage.getResult(), CallDetail.class);

但是我使用com.google.gson.internal.LinkedTreeMap对象获取了List,但我需要List<CallDetail>

Json字符串片段

"result": "[{\"servedimei\":\"3579330679481801\",\"тип сетевого события\":\"Исходящий голос\",\"время начала события\":\"2016-01-01 19:33:10.0\"

POJO

public class CallDetail {

    private String servedimei;
    @SerializedName("тип сетевого события")
    private String type;
    @SerializedName("время начала события")
    private String starttime;
    @SerializedName("вызывающий абонент")
    private String src;
    @SerializedName("вызываемый абонент")
    private String dest;
    @SerializedName("длительность")
    private String duration;
    @SerializedName("базовая станция")
    private String bs;
    private String lac;
    private String ci;

1 个答案:

答案 0 :(得分:0)

从日志中可以很简单。 JSON字符串包含result字段,其中包含array,GSON将其视为Map。您还需要一个课程才能获得所需的结果。

class CallDetailResult {
        List<CallDetail> result;
        // getter and setter
}

// how to use GSON here to get the desired result
CallDetailResult  result = new Gson().fromJson(jsonStr, CallDetailResult.class);
List<CallDetail> list = result.getResult();

www.json.org

了解详情

enter image description here

enter image description here