2015-10-12 2 views
1

У меня есть следующие Spring @RestController методДобавление дополнительных атрибутов к ResponseBody объекта

@RequestMapping(value = "/getPeople", method = RequestMethod.GET) 
public List<Person> getPeople(Model model){ 
    List<People> people = personRepo.getAllPeople(); 
    model.addAttribute("people", people); 
    return people; 
} 

который возвращает следующее в ответ Body

[ 
    {"name":"Jim","group":1}, 
    {"name":"Dwight","group":2}, 
    {"name":"Stanley","group":3} 
] 

Могу ли я изменить этот метод (с помощью самого @Controller метода , или с запросом AJAX) включить дополнительные атрибуты как внутри, так и вне массива people и без изменения объекта Person - так, чтобы возвращаемый объект мог выглядеть чем-то вроде e

{ 
    "people":[ 
     {"name":"Jim","group":1, "independentAttribute": "A"}, 
     {"name":"Dwight","group":2, "independentAttribute": "B"}, 
     {"name":"Stanley","group":3, "independentAttribute": "C"} 
    ], 
    "extraAttributes":[ 
     {"attribute1": 1,"attribute2": 2,"attribute3":3} 
    ] 
} 

извинения, если это недопустимый синтаксис объекта/массива, не хватает его вместе.

+1

_lackadaisically_ Причудливое слово. –

+0

@SotiriosDelimanolis Я использую процессор JSON от FasterXML –

+0

Моя ошибка, это '@ RestController', который возвращает массив в Response Body - обновил мой вопрос. Это помогает? –

ответ

2

Вы можете изменить объект обратного вызова запроса JSON. Я не знаком с d3_json, но вы можете сделать что-то вроде

callback : function(data){ 
    //data is the returned List<Person> serialized to JSON 
    var modifiedObj = new Object(); 
    modifiedObj.persons = data; 
    modifiedObj.extraAttributes = [{"attribute1": 1,"attribute2": 2,"attribute3":3}] 
} 
+0

Только то, что я искал. спасибо –

0

Я думаю, что вы ищете пользовательский JSON сериализатор, смотрите по этой ссылке: http://www.baeldung.com/jackson-custom-serialization

+0

Извините, я не понимаю, почему вы это сделали, я что-то не понял? Я думал, вы хотели бы добавить пользовательскую строку json в уже сериализованный json (список людей)? Я прав? –

+0

Я не спустил вас в м8. Я нашел ответ полезным, хотя я нашел, что @onepotato имел то, что искал –

+0

. Как они будут использовать этот сериализатор JSON? –

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