java - 使用 Jackson 进行内部静态对象反序列化

标签 java json serialization

我正在尝试像这样反序列化 json:

{ “用户.getToken”:{ “代码”:“200”, “ token ”:“0155649ce3ea4be98da9fc29376d8688”, “用户名”:“Andruw137”, “user_avatar”:“https://text.com/images/avatar/_/81546.png” } }

使用这些代码行:

ObjectMapper mapper = new ObjectMapper(); 

TokenRequest tokenRequest = mapper.readValue(String.valueOf(response), TokenRequest.class);

还有这个:

public class TokenRequest {

@JsonProperty("User.getToken")
public User user = new User();

public User getUser() {
    return user;
}

public void setUser(User user) {
    this.User = user;
}

static class User {
    int code;
    String token;
    String user_name;
    String user_avatar;

    public int getCode() {
        return code;
    }

    public String getToken() {
        return token;
    }

    public String getUser_name() {
        return user_name;
    }

    public String getUser_avatar() {
        return user_avatar;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public void setUser_name(String user_name) {
        this.user_name = user_name;
    }

    public void setUser_avatar(String user_avatar) {
        this.user_avatar = user_avatar;
    }
}

}

我已阅读文档但仍然收到错误:

com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type [simple type, class ru.amdm.amdm.authorization.TokenRequest] from Integral number (404); no single-int-arg constructor/factory method
                                                              at [Source: 404 .1; line: 1, column: 1]

我想了解该错误消息的含义以及如何实际反序列化这样的 json。预先感谢您的任何帮助。

最佳答案

您正在尝试将字符串 "code": "200" 反序列化为整数。如果您删除引号,这将起作用:“code”:200

另外,请在对象字段中添加 @JsonProperty("json_name") 注解,并使用标准驼峰式大小写命名:

@JsonProperty("user_avatar") 字符串用户头像;

关于java - 使用 Jackson 进行内部静态对象反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37253705/

相关文章:

ios - 将 SwiftyJSON 集成到项目中

php - PHP 的 serialize() 函数的 JavaScript/jQuery 版本

java - HTTP Status 500 - 请求处理失败;嵌套异常是 org.hibernate.HibernateException : No Hibernate Session bound to thread

Java:如何使用 URL.openConnection() 强制进行新的 SSL 握手?

c# - 将 JSON 数据发布到 ASP.NET MVC

django - 将具有反向一对一字段的 Django 模型序列化为 JSON

java - 我该如何反序列化?有人可以帮我做这个吗?我无法反序列化

java - 计算学生的 GPA

java - Glassfish 无法连接到 mysql 数据库

javascript - 我如何通过 PHP 和 mySQL 从 JQuery 加速 Chart.js 图形生成?