我想弄清楚如何将Jackson对象转换为
JSONObject?
我尝试了什么,但我不相信这是正确的方法.
public JSONObject toJSON() throws IOException { ObjectMapper mapper = new ObjectMapper(); return new JSONObject(mapper.writeValueAsString(new Warnings(warnings))); }
现在,您将Pojo序列化为String,然后解析该String并将其转换为JSONObject形式的HashMap样式对象.
这是非常低效的,并没有实现任何好处.
Jackson已经提供了一个ObjectNode
类,用于与Pojo作为JSON对象进行交互.所以只需将对象转换为ObjectNode即可.这是一个有效的例子
public class Example { public static void main(String[] args) throws Exception { Pojo pojo = new Pojo(); pojo.setAge(42); pojo.setName("Sotirios"); ObjectMapper mapper = new ObjectMapper(); ObjectNode node = mapper.valueToTree(pojo); System.out.println(node); } } class Pojo { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
否则,你这样做的方式很好.