2015-12-30 3 views
1

Я работаю над Spring Rest и Angularjs. У меня проблема с тем, как объекты преобразуются. Допустим, у меня есть два класса.Spring Rest JSON conversion

@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "fooId", scope = Foo.class) 
class Foo { 
    int fooId; 
    String fooName; 
    String fooTitle; 
    Bar bar; 
} 

@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "barId", scope = Bar.class) 
class Bar { 
    int barId; 
    String barName; 
    String barTitle; 
    int fooId; 
} 

Когда я посылаю объект Foo с баром в Angularjs, я получаю что-то вроде этого:

{ 
    "fooId": 1, 
    "fooName": "foo-name", 
    "fooTitle": "foo-title", 
    "bar": 1 
} 

Я ожидал получить так:

{ 
    "fooId": 11, 
    "fooName": "foo-name", 
    "fooTitle": "foo-title", 
    "bar": { 
     "barId": 22, 
     "barName": "bar-name", 
     "barTitle": "bar-title", 
     "fooId": 11 
    } 
} 

Что может быть неправильно?

+0

Не удалось создать результат, полученный с помощью 'spring 4.2.1.RELEASE' и' jackson-databind 2.4.4'. Я получаю ожидаемые результаты. Использованный клиент Chrome Rest для тестирования –

ответ

0

Просто попробуйте удалить аннотацию @JsonIdentityInfo со своего класса Bar - контроллер останова по умолчанию легко преобразует классы без него!

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