2012-02-16 2 views
1

Я хотел бы преобразовать объект в представление строки, которая, как JSON без имен полехПреобразования роекта в формат пользовательской строки с помощью Джексона Serializer

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

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, ложное}

и массив этого объекта должен выглядеть

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

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

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

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

благодаря

ответ

0

Я не думаю, что ObjectMapper имеет гибкость сделайте это, поскольку то, что вы пытаетесь t o генерировать на самом деле не 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] 

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

+0

благодарит за ответ. Я хотел, чтобы мои объекты были в фигурных скобках, но массив из них должен быть в квадратных скобках. но я могу импровизировать решение, но вы можете мне предложить, как настроить Spring 3 для использования в качестве вида – Mrinmoy

+0

. Я мало знаю о Spring, но [в документах] (http: //static.springsource. org/spring/docs/3.0.x/spring-framework-reference/html/view.html # view-json-mapping), он говорит: «JSON-сопоставление может быть настроено по мере необходимости с помощью предоставленных аннотаций Джексона. необходимо, чтобы пользовательский ObjectMapper можно вводить через свойство ObjectMapper для случаев, когда для определенных типов должны быть предусмотрены специализированные сериализаторы/десериализаторы JSON ». Поэтому, возможно, вам нужно перевернуть свой собственный подкласс ObjectMapper и добавить это. –

Смежные вопросы