java - 我应该如何在 Jackson JSON 中使用数字对象键解析 JSON

标签 java json jackson

我刚开始使用 Jackson JSON 解析器,我喜欢它,但我在尝试解析 JSON 对象时遇到了问题。

这是我当前的 java 代码:

public class resetPassword {
    private String id;
    private String key1;
    private String key2;


    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id= id;
    }

    public String getKey1() {
        return key1;
    }

    public void setKey1(String key1) {
        this.key1= key1;
    }

    public String getKey2() {
        return key2;
    }

    public void setKey2(String key2) {
        this.key2= key2;
    }
}

我将如何在 Jackson 中解析这样的内容:

{
   "1":{
      "key1":"val",
      "key2":"val"
   },
   "2":{
     "key":"val",
     "key":"val"
     }, .. etc
}

我们将不胜感激任何帮助

最佳答案

根据评论中的信息,我猜你需要将遍历与数据绑定(bind)结合起来。

首先,使用 traversal , 获取带有 {"key1": ..., "key2": ...}JsonNode 对象。 伪代码(未测试):

    ObjectMapper mapper = new ObjectMapper();
    JsonNode root = mapper.readTree(genreJson);
    Iterator<String> fieldNames = root.fieldNames();
    while (fieldNames.hasNext()) {
        String fieldName = fieldNames.next();
        JsonNode node = root.get(fieldName);
        // now you should have {"key1": ...} in node
    }

然后使用data binding对于您找到的每个节点:

ResetPassword item = mapper.readValue(node, ResetPassword.class);

关于java - 我应该如何在 Jackson JSON 中使用数字对象键解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21759625/

相关文章:

php - 有没有更好的方法使用 JSON 或其他方式上传记录集?

json - NetSuite RESTlet 保存的搜索返回限制

arrays - 如何从 Swift 3 中的结构数组生成 JSON?

java - 在 Spring MVC 中,无法使用 Jackson @JsonFormat 将输入绑定(bind)到日期字段

spring Rest 动态从序列化中排除对象属性

java - jackson-core-asl 和 jackson-core-lgpl 有什么区别

java - 缓存 FreeMarker 模板

javascript - 如何在 Javascript 中隐藏点击的链接并保存在 session 中

java - Spring Data JPA 查询返回 null

java - 如何从纯数字字符串中获取 11 个字母数字的 UNIQUE ID?