java - 对象映射器反序列化映射数组

标签 java objectmapper

   {
       "name" : "test",
       "info": [
          {
            "key1": "test",
            "key2": "blaa",
            "key3": "yadayada"
          },
          {
            "key4": "test1",
            "key5": "blaa1",
            "key6": "yadayada1"
          }
        ],
    }

我有这个类用于反序列化

public class Account{
    private String name;
    private Map<String,String>[] info;
}

出于某种原因info没有被反序列化...即使使用 List<Map<String,String>> 也没有它始终为空,并且 name正在工作

(我正在使用ObjectMapper)

代码

   ObjectMapper objectMapper = new ObjectMapper();
   objectMapper.disable( DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES);
   results = objectMapper.readValue(responseBody.getEntity().getContent(), Account.class);

谢谢

最佳答案

问题在于您发布的 JSON 架构末尾有一个错误的逗号)。尝试以下方法

假设 responseBody.getEntity().getContent() 是您发布的 JSON

Account.java

或更具体

private String name;
private Map<String,String>[] info;
//getters && setters && default constructor

反序列化方法

    Account account = null;
    ObjectMapper objectMapper = new ObjectMapper();
    try {
        account = objectMapper.readValue(responseBody.getEntity().getContent(), Account.class);
    } catch (IOException e) {
        e.printStackTrace();
    }

关于java - 对象映射器反序列化映射数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57310650/

相关文章:

java - 从 Map<String,String> 获取 3 个最高值

ios - 我如何使用 AlamoFireObjectMapper 动态映射 JSON 中的值,该值取决于同一 JSON 中的另一个值?

ios - Realm :更新对象而不更新列表

java - 如何使用 Jackson 解析可能是字符串也可能是数组的字段

java - 使用 system-uuid 将数据插入数据库

java - 散列字符串和相关异常

java - 取消 Java Swing 输入窗口中的更改

json - swift 中的 AlamofireObjectMapper

arrays - Swift ObjectMapper 在没有更多上下文的情况下不断返回模棱两可

java - 使用 Jayway 的放心验证 XML 属性