Java 使用包含RestTemplate数组的单个字段为json创建POJO

Java 使用包含RestTemplate数组的单个字段为json创建POJO,java,json,spring,resttemplate,Java,Json,Spring,Resttemplate,我正在为以下JSON格式创建一个客户端- { "results": [ { "Product": "K265113", "Language": "EN", "LongText": "FIXTURE,INTERIOR,WALL" } ] } JSON始终包含“results”字段,该字段是单个元素的数组(它将始终是该数组中的单个元素)。我只需要JSON中的LongText字段,

我正在为以下JSON格式创建一个客户端-

{
    "results": [
        {
            "Product": "K265113",
            "Language": "EN",
            "LongText": "FIXTURE,INTERIOR,WALL"
        }
    ]
}
JSON始终包含“results”字段,该字段是单个元素的数组(它将始终是该数组中的单个元素)。我只需要JSON中的LongText字段,其他什么都不需要。我正在使用SpringRESTTemplate

我知道,如果我创建两个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;
    }
}
公共类ParentDTO
{
私人名单结果;
公共列表getResults()
{
返回结果;
}
公共void setResults(列出结果)
{
这个结果=结果;
}
}
公营儿童
{
私有字符串长文本;
公共字符串getLongText()
{
返回长文本;
}
@JsonProperty(“长文本”)
公共无效setLongText(字符串longText)
{
this.longText=longText;
}
}

但是有没有办法通过创建一个DTO来读取longText,因为父DTO没有任何有用的字段,因为我知道结果数组中总是只有一个元素。

您只需要一个DTO的原因可能是您只需要一个类来执行此任务。您可以使用ChildDTO作为内部类来实现这一点,这将使它更具可读性和可维护性

另一种方法是不将spring模板响应解析为dto,而是使用jacksondatabindapi的JSONNode

JsonNode root = objectMapper.readTree(response.getBody());
您可以在以下网址找到更多信息:

您可以遍历树并直接检索属性值,而无需任何DTO