java Jackson怎么将对象转成Map<String, Object>,并且对象的属性是自己的class
时间: 2024-03-06 07:50:29 浏览: 42
可以使用Jackson的ObjectMapper类中的convertValue方法将Java对象转换成Map<String, Object>,并且对象的属性是自己的class。具体实现代码如下:
```java
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Map;
public class Demo {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
// 将Java对象转换成Map<String, Object>
MyClass myClass = new MyClass();
Map<String, Object> map = mapper.convertValue(myClass, Map.class);
// 输出Map<String, Object>中的内容
for (Map.Entry<String, Object> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
class MyClass {
private String name = "张三";
private int age = 18;
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
在上面的示例代码中,MyClass是一个包含name和age两个属性的类,通过ObjectMapper的convertValue方法将其转换成Map<String, Object>,并输出Map中的内容。输出结果如下:
```
name: 张三
age: 18
```
需要注意的是,如果MyClass中包含其他自定义类的属性,也可以使用上述方法将其转换成Map<String, Object>,但是需要保证被转换的自定义类中同样包含了getter方法。
阅读全文