如何从Java中的JSON映射另一个对象中的对象数组

如何从Java中的JSON映射另一个对象中的对象数组,java,json,spring,mapping,resttemplate,Java,Json,Spring,Mapping,Resttemplate,我需要使用restemplate调用一个API,以获得一个JSON,该JSON应该自动转换为Java对象 示例JSON如下所示 { "ParsedResults": [ { "TextOverlay": { "Lines": [], "HasOverlay": false,

我需要使用
restemplate
调用一个API,以获得一个JSON,该JSON应该自动转换为Java对象

示例JSON如下所示

{
    "ParsedResults": [
        {
            "TextOverlay": {
                "Lines": [],
                "HasOverlay": false,
                "Message": "Text overlay is not provided as it is not requested"
            },
            "TextOrientation": "0",
            "FileParseExitCode": 1,
            "ParsedText": "Translated message",
            "ErrorMessage": "",
            "ErrorDetails": ""
        }
    ],
    "OCRExitCode": 1,
    "IsErroredOnProcessing": false,
    "ProcessingTimeInMilliseconds": "1296",
    "SearchablePDFURL": "Searchable PDF not generated as it was not requested."
}
我还创建了一个类,用于在调用所需的API时映射所有数据(为了清晰起见,未包括getter和setter)

这个文件还有一个由我创建的类来映射JSON的另一部分,但我不知道这是否重要,所以除非有人需要,否则我不会粘贴它

现在的问题是,如果我启动应用程序并进行调用,
OCRResponse
对象拥有除
ParsedResults
对象之外的所有数据

我已尝试将
列表解析结果更改为

ArrayList<ParsedResults> parsedResults;
ArrayList<ParsedResults> parsedResults = new ArrayList<>();
ParsedResults[] parsedResults;
ParsedResults parsedResults //As I should get only one element in my collection anyway
arraylistparsedresults;
ArrayList parsedResults=新的ArrayList();
ParsedResults[]ParsedResults;
ParsedResults ParsedResults//因为我应该在我的集合中只得到一个元素
但是这些都不起作用,我经常得到
NullPointerException
IndexOutOfBoundsException

我很确定用这种方法可以达到我的目标,因为如果我没记错的话,我在学习期间也做过类似的事情。 有人能帮我找出这里出了什么问题吗?

FYI:根据示例JSON,
OCRExitCode
应该是
int
processingtimeinmilyses
应该是
String
,而
FileParseExitCode
应该是
int
尽管字段名称为
ParsedResults
(复数),但类型应为
List
(单数),因为
List
使其成为复数。与
列出汽车相同
是有意义的,即它是一个单独汽车的列表。谢谢提示:)。我没有意识到,在JSON中,
ParsedResults
是复数,因为它是一个
列表
/
数组
,我会修正它。仅供参考:根据示例JSON,
OCRExitCode
应该是
int
processingtimeinms
应该是
字符串
,而
FileParseExitCode
应该是
int
——尽管字段名称为
ParsedResults
(复数),但类型应为
List
(单数),因为
List
使其成为复数。与
列出汽车相同
是有意义的,即它是一个单独汽车的列表。谢谢提示:)。我没有意识到,在JSON中,
parsedResult
是复数,因为它是一个
列表
/
数组
,我会修复它。
public class ParsedResults {

    @JsonProperty("TextOverlay")
    private TextOverlay textOverlay;

    @JsonProperty("TextOrientation")
    private String textOrientation;

    @JsonProperty("FileParseExitCode")
    private String fileParseExitCode;

    @JsonProperty("ParsedText")
    private String parsedText;

    @JsonProperty("ErrorMessage")
    private String errorMessage;

    @JsonProperty("ErrorDetails")
    private String errorDetails;
}
OCRResponse response = restTemplate.getForEntity(uriBuilder.toUriString(), OCRResponse.class).getBody();
System.out.println(response.getSearchablePDFURL());             //null (correct)
System.out.println(response.isErroredOnProcessing());           //true (correct)
System.out.println(response.getProcessingTimeInMilliseconds()); //406  (correct)
System.out.println(response.getOCRExitCode());                  //99   (correct)
System.out.println(response.getParsedResults());                //null (invalid result)
ArrayList<ParsedResults> parsedResults;
ArrayList<ParsedResults> parsedResults = new ArrayList<>();
ParsedResults[] parsedResults;
ParsedResults parsedResults //As I should get only one element in my collection anyway