Мои данные в настоящее время хранятся в этом формате:
{
"label":["X","Y"],
"data":{
"site1":{
"week":[
{
"idWeek":"9",
"max":2,
"min":0
}
]
},
"site2":{
"week":[
{
"idWeek":"9",
"max":2,
"min":0
}
]
}
}
}
И мне нужно преобразовать их в этот формат:
{
"label":["X","Y"],
"myClient":{
"week":[
{
"id":"9",
"access":2,
"lost":0
}
]
}
}
Как видите, мне также нужно взять ключи (имя сайта), и мне нужно удалить «данные» и изменить имя свойства.
Есть идеи, как я могу сделать это в Java (я использую Java 8 с Spring Boot? Я не очень хорошо умею реструктурировать этот тип данных.
ОБНОВЛЕНИЕ
Мои решения: я использовал разные интерфейсы и использовал RestTemplate! Я не знаю, что это лучшее решение, однако оно сработало.
public Optional<Consolidate> getCasosPorEstado() {
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<Consolidate> res = restTemplate.exchange(PATH_CONSOLIDATE, HttpMethod.GET, null,
new ParameterizedTypeReference<Consolidate>() {
});
return Optional.of(res.getBody());
}
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({ "label", "data" })
@Data
public class Consolidate {
@JsonProperty("label")
private List<String> labels = null;
@JsonProperty("data")
private MyClient client;
}
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({ "site1" })
class MyClient {
@JsonProperty("Site")
Site SiteObject;
}
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({ "week" })
class MS {
@JsonProperty("week")
private List<Week> week = null;
}
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class Semana {
@JsonAlias("idWeek")
private String id;
@JsonAlias("max")
private Double access;
@JsonAlias("min")
private Double lost;
}