相关疑难解决方法(0)

如何为Gson编写自定义JSON反序列化器?

我有一个Java类,用户:

public class User
{
    int id;
    String name;
    Timestamp updateDate;
}
Run Code Online (Sandbox Code Playgroud)

我收到一个包含来自Web服务的用户对象的JSON列表:

[{"id":1,"name":"Jonas","update_date":"1300962900226"},
{"id":5,"name":"Test","date_date":"1304782298024"}]
Run Code Online (Sandbox Code Playgroud)

我试图编写一个自定义反序列化器:

@Override
public User deserialize(JsonElement json, Type type,
                        JsonDeserializationContext context) throws JsonParseException {

        return new User(
            json.getAsJsonPrimitive().getAsInt(),
            json.getAsString(),
            json.getAsInt(),
            (Timestamp)context.deserialize(json.getAsJsonPrimitive(),
            Timestamp.class));
}
Run Code Online (Sandbox Code Playgroud)

但我的解串器不起作用.如何为Gson编写自定义JSON反序列化器?

java json gson deserialization

47
推荐指数
2
解决办法
7万
查看次数

使用Gson的自定义JSON反序列化器

我使用Gson解析JSON响应时遇到问题.

JSON字符串:

response: [
  2, {
    owner_id: 23972237,
    album_id: 25487692,
    title: 'album not new'
  }, {
    owner_id: 23972237,
    album_id: 25486631,
    title: '???'
  }
]
Run Code Online (Sandbox Code Playgroud)

我有这两个班:

public class VkAudioAlbumsResponse {
    public ArrayList<VkAudioAlbum> response;
    public VkError error;
}

public class VkAudioAlbum {
    public int owner_id;
    public int album_id;
    public String title;
}
Run Code Online (Sandbox Code Playgroud)

但是在使用Gson解析时我有一个异常.我知道这是因为响应数组的第一个元素不是一个对象,而是整数.

所以问题是,我能以某种方式解决它吗?

java parsing json gson

13
推荐指数
1
解决办法
2万
查看次数

标签 统计

gson ×2

java ×2

json ×2

deserialization ×1

parsing ×1