Преобразование Oject в пользовательский формат строки с использованием Jackson Serializer - PullRequest
1 голос
/ 17 февраля 2012

Я хотел бы преобразовать объект в строковое представление, похожее на JSON без полей

, например, следующий класс

public class Employee{
  private String name;
  private int age;
  private boolean married;
}

Employee = new objEmp();
objEmp.Name = "Mickey Mouse";
objEmp.age = 24;
objEmp.married = false;

вышеупомянутый объект, в который я хотел бы преобразоватьстрока как {"Микки Маус", 24, false}

и массив этого объекта должен выглядеть следующим образом:

[
   {"Mickey Mouse", 24, false}
  ,{"Robin Hood"  , 24, false}
]

Я ищу решение, которое можно применять постоянно для каждой JavaОбъекты (POJO).поэтому переопределение метода toString () для каждого объекта или решений в похожих строках нежелательно

Я предпочитаю делать это с Джексоном, поскольку я все готов использовать его для преобразования объектов в JSON в Spring 3

Я ищу некоторые конфигурации Джексона ObjectMapper, которые могут помочь мне достичь этого, или, если нет, я могу создать свой собственный Object Mapper и использовать его в Spring View

спасибо

1 Ответ

0 голосов
/ 17 февраля 2012

Я не думаю, что ObjectMapper обладает гибкостью для этого, поскольку на самом деле вы пытаетесь сгенерировать не JSON.

Как насчет использования отражения, чтобы получить список значений поля, а затем сериализовать его как массив объектов?

Что-то вроде:

List<Object> vals = new ArrayList<>();
for (Field field : Employee.class.getDeclaredFields()) {
    field.setAccessible(true);
    vals.add(field.get(emp));
}
ObjectMapper om = new ObjectMapper();
System.out.println(om.writeValueAsString(vals));

Это дает вам

["Mickey Mouse",24,false]

с квадратными скобками вместо фигурных скобок. Это достаточно хорошо?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...