【问题标题】:How can we convert String to List<ClassName> in Java?我们如何在 Java 中将 String 转换为 List<ClassName>?
【发布时间】:2020-06-15 08:41:23
【问题描述】:
public class ClassName implements Serializable {

    String body;

    String id;

   List<Object> attachements;
}

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

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

有什么简单的方法可以将这些对象映射到原始类。

【问题讨论】:

标签: java serialization deserialization objectmapper


【解决方案1】:

你可以尝试这样的事情: new ObjectMapper().readValue("[{\"body\":\"Body Message\",\"id\":\"12345\",\"attachments\":[]}]", 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;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-05
    • 2021-09-17
    • 2021-08-08
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 2020-06-10
    • 2015-06-05
    相关资源
    最近更新 更多