java - 在 Java 中如何将 String 转换为 List<ClassName>?

标签 java serialization deserialization objectmapper

public class ClassName implements Serializable {

    String body;

    String id;

   List<Object> attachements;
}

我需要将字符串 [{"body":"Body Message","id":"12345","attachments":[]}] 转换为 List 对象。

我尝试使用 ObjectMapper 但失败了 java.lang.IllegalArgumentException:无法构造 ClassName 的实例(尽管至少存在一个 Creator):没有从字符串值反序列化的字符串参数构造函数/工厂方法 ('{"body":"Body Message ","id":"12345","来源":2,"附件":[],}') [来源:未知;行:-1,列:-1]

是否有任何简单的方法将这些对象映射到原始类。

最佳答案

你可以尝试这样的事情: new ObjectMapper().readValue("[{\"body\":\"正文消息\",\"id\":\"12345\",\"附件\":[]}]", List.class);

参见https://www.baeldung.com/jackson-collection-array

完整示例:

package com.company;

import org.codehaus.jackson.map.ObjectMapper;

import java.io.IOException;
import java.io.Serializable;
import java.util.List;

public class Main {

    public static void main(String[] args) throws IOException {
        List<ClassName> list = new ObjectMapper().readValue("[{\"body\":\"Body Message\",\"id\":\"12345\",\"attachments\":[]}]", List.class);
        System.out.println(list.get(0));
    }

    public static class ClassName implements Serializable {
        String body;

        String id;

        List<Object> attachements;
    }
}

关于java - 在 Java 中如何将 String 转换为 List<ClassName>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62384488/

相关文章:

java - 在Java中将图像转换为base64字符串

java - Spark : Dataframe action really slow when upgraded from 2. 1.0 至 2.2.1

C# 使用 Java SOAP 服务 WSSecurity

.net - 使用 XmlSerializer 将空的 xml 属性值反序列化为可为空的 int 属性

java - 有没有条件jackson json策略?

java - 如何在对象类中的绘制图形中设置计时器

java - 序列化会保存父类(super class)字段吗?

ruby-on-rails - 如何允许序列化数组的正确存储?

c# - 反序列化后初始化私有(private)只读字段

java - 包含 Map<String, Object> 字段的对象的 Jackson 默认类型