我正在寻找一种方法将jjo转换为POJO列表。
我们一直在使用codehaus jackson
已经使用spring MVC。我想要实现的不是在使用@ResponseBody
动作的ajax调用中,我正在考虑使用util方法来转换Pojos列表到了json数组,但在查看examples和ObjectMapper class后,似乎没有直接的方法来实现它。他们创建了一个类PojoMapper来做到这一点。
public static String toJson(Object pojo, boolean prettyPrint)
throws JsonMappingException, JsonGenerationException, IOException {
StringWriter sw = new StringWriter();
JsonGenerator jg = jf.createJsonGenerator(sw);
if (prettyPrint) {
jg.useDefaultPrettyPrinter();
}
m.writeValue(jg, pojo);
return sw.toString();
}
我只是想知道这是推荐的方式。在另一个例子中他们使用了一个文件,但我没有使用文件而是对象。所以我想知道是否有人可以展示出来。
感谢您阅读本文
答案 0 :(得分:2)
你应该能够做到以下几点。
List<POJO> list = ...;
String json = new ObjectMapper().writeValueAsString(list);
如果您是双向父/子关系。然后你需要添加注释来告知杰克逊这种关系。
class Parent {
private Child child;
@JsonManagedReference
Child getChild() {return child;}
void setChild(Child child) {this.child = child;}
}
class Child {
private Parent parent;
@JsonBackReference
Parent getParent() {return parent;}
void setParent(Parent parent) {this.parent = parent;}
}
上面告诉杰克逊这种关系的周期性,并没有试图揭示无限循环的引用。这适用于Jackson 1.6+。我之前没有遇到过这个问题,我没有杰克逊在这台机器上,因此无法正确测试。
您还应注意documentation表示父母不能成为集合。