Аз съм търсил начин да конвертирате в json списък на POJO.
използвахме codehaus jackson
вече с пролетта MVC. какво исках да се постигне не е в ajax повикване с @ResponseBody
действие, аз съм мислене на метод util за конвертиране на списъка на Pojos в JSON масив, но след като погледнете примери и Клас ObjectMapper изглежда, че няма ясен начин за постигането му. те са създали клас 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();
}
Просто се чудя, че това е препоръчителният начин. на други примери те са използвали файл, но аз нямам намерение да използвам файл, но object.So съм се чудех дали някой може да покаже пътя.
Благодаря за четене на това
Отговори:
2 за отговор № 1Трябва само да можете да направите следното.
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;}
}
Горното информира Джаксън за цикличния характерна връзката и не се опитвам да разгърна безкрайния цикъл от референции. Това работи за Джаксън 1.6. правилно.
Трябва също да отбележите, че документация казва, че родителят не може да бъде колекция.