java - 我们如何将字符串转换为列表在 Java 中?
问题描述
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","source":2,"attachments":[],}') 在 [Source: UNKNOWN; 行:-1,列:-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;
}
}
推荐阅读
- r - 闪亮的应用程序模块:使用传单提取在服务器函数中创建的输入
- python - 为什么我不能在这个列表中添加元素?(python中的面向对象编程)
- c - C 编程,使用命令行参数从一个文件复制到另一个文件
- javascript - 为什么使用 axios 从 XML 中获取数据会引发 cors 错误?
- laravel - 使用 laravel 访问多个文件上传
- visual-studio-code - VS Code Windows 7 中的彩色表情符号
- c# - 我可以阻止 IOException 打开消息框吗?
- amp-html - 带有华丽弹出 iframe 的 amp 故事
- c++ - 实现移动最小二维过滤器
- python - 在 jupyter notebook 中的 min 或 average 函数之后添加括号 () 的区别