我正在为以下JSON格式创建客户端-
{
"results": [
{
"Product": "K265113",
"Language": "EN",
"LongText": "FIXTURE,INTERIOR,WALL"
}
]
}
JSON始终包含“结果”字段,该字段是单个元素的数组(在此数组中始终是单个元素)。我只需要JSON中的LongText字段即可。我正在使用Spring RESTTemplate。
我知道如果创建两个像-这样的DTO,它会起作用。
public class ParentDTO { private List<ChildDTO> results; public List<ChildDTO> getResults() { return results; } public void setResults(List<ChildDTO> results) { this.results = results; } } public class ChildDTO { private String longText; public String getLongText() { return longText; } @JsonProperty("LongText") public void setLongText(String longText) { this.longText = longText; } }
但是有什么方法可以通过创建单个DTO来读取longText,因为父DTO没有任何有用的字段,因为我知道在结果数组中始终只有一个元素。
我正在为以下格式的JSON创建客户端-{“结果”:[{“产品”:“ K265113”,“语言”:“ EN”,“ LongText”:“ FIXTURE,INTERIOR,WALL” .. 。
您可以使用@JsonRootName批注,这将使您摆脱无用的父POJO。
之所以只需要一个DTO,可能是因为只希望一个类来执行此任务。您可以使用ChildDTO作为内部类来实现这一点,这将使其更易于阅读和维护。