一个表的extra字段为json格式,存着一个名为“phase”的数组,我用一个DTO的extra属性拿到这个extra字段的内容后,如何转化为为List<Long>
时间: 2024-09-13 11:15:34 浏览: 38
当你从数据库中获取到的DTO的extra属性是一个JSON格式的字符串,并且该字符串中包含一个名为“phase”的数组,你可以使用Java中的JSON解析库,如Jackson或Gson,来将这个JSON字符串解析为Java中的List<Long>。以下是使用Jackson库进行转换的基本步骤:
1. 首先,确保你的项目中已经添加了Jackson的依赖。如果使用Maven,可以在pom.xml中添加如下依赖:
```xml
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.0</version>
</dependency>
```
2. 然后,你可以使用ObjectMapper类来将JSON字符串转换为List<Long>。以下是一个示例代码:
```java
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;
public class JsonParserExample {
public static void main(String[] args) {
try {
// 假设这是从数据库中获取到的DTO的extra属性值
String jsonStr = "{\"phase\":[1, 2, 3]}";
ObjectMapper objectMapper = new ObjectMapper();
// 读取JSON字符串并将其映射为Map
Map<String, List<Long>> map = objectMapper.readValue(jsonStr, new TypeReference<Map<String, List<Long>>>() {});
// 从Map中获取键为"phase"的列表
List<Long> phaseList = map.get("phase");
// 输出转换后的列表
System.out.println(phaseList);
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在上述代码中,我们首先创建了一个ObjectMapper的实例,然后使用该实例的readValue方法将JSON字符串映射成一个Map<String, List<Long>>类型的数据结构。之后,通过键“phase”获取到List<Long>类型的数据,并可以按需进行进一步处理。
阅读全文