2016-07-09 1 views
1

Я прочитал объект как xml и произвел json весной, все в порядке. Однако я хочу изменить одну из переменных. Скажем, я прочитал объект PersonКак изменить контент при конвертации из xml в json в Spring?

@XmlRootElement (name="Person") 
@XmlAccessorType(XmlAccessType.FIELD) 

public class Person{ 
//a lot variable same when reading and response 
private String nameSurname; 

В приведенном выше примере я читал XML <nameSurname>JohnNash<nameSurname>, но я хочу, чтобы вернуть {"name":"John","surname":Nash}

Так что это лучший подход, чтобы сделать это?

Должен ли я использовать 2 разных объекта и написать функцию сопоставления? (xmlPerson, jsonPerson)

Должен ли я просто изменять функцию getter, чтобы изменить контент, чтобы он производил json, как я хочу?

Должен ли я использовать только один объект и написать пользовательскую функцию json converter?

ответ

1

В идеале, XML и JSON должны быть похожими, поскольку общая идея заключается в использовании сервисов RESTful вокруг концепции, что если вы будете кормить ее XML или JSON-форматом, она будет работать с ней одинаково - отсюда и необходимость в конвертерах например, Gson, Jackson и т. д.

Но по какой-то определенной причине, если вы хотите сопоставить один элемент XML с двумя атрибутами JSON, лучшим способом было бы иметь дело с одним объектом и написать json для него. Это дает вам гибкость при размещении кода сопоставления в одном месте, которое может быть легко изменено на более позднем этапе, если это необходимо.

+0

Я действительно прочитал xml из другой службы, поэтому я хочу изменить имена переменных и карты на разные объекты. Спасибо за ваш ответ. – Richard