com.fasterxml.jackson.databind.exc.mismatchdinputException:无法反序列化START_数组令牌之外的对象实例-JAVA

com.fasterxml.jackson.databind.exc.mismatchdinputException:无法反序列化START_数组令牌之外的对象实例-JAVA,java,json,spring-boot,spring-data-jpa,jackson-databind,Java,Json,Spring Boot,Spring Data Jpa,Jackson Databind,获取不匹配的InputException。在这里搜索了很多问题,但尚未找到解决方案 代码: 输出: [{"createdOn":1601058721310,"lastUpdated":null,"lastUpdatedBy":null,"createdBy":null,"appId":null,"logical":"N","calculationD

获取不匹配的InputException。在这里搜索了很多问题,但尚未找到解决方案

代码:

输出:

[{"createdOn":1601058721310,"lastUpdated":null,"lastUpdatedBy":null,"createdBy":null,"appId":null,"logical":"N","calculationDateTime":1601058721310,"mtaVersionNumber":null,"storageRegionName":"texas","createdOnDate":1601058721310,"lastUpdatedDate":0}]
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `object` out of START_ARRAY token
 at [Source: (StringReader); line: 1, column: 1]

我不确定是什么导致了这个异常。当我启动应用程序时,我运行并读取JSON fine..但抛出异常。

在调用
readValue
时,您将
bar.class
作为第二个参数传递,它告诉Jackson第一个参数(
line
)是一个
bar
实例的JSON表示,这就是它应该返回的内容

JSON对象以
{
开头,因为您要求Jackson反序列化一个对象,它希望输入以
{
开头。但是您传入的JSON,
,不是
实例:它是一个包含
实例的数组,它以
[
开头

因此它抛出一条错误消息,说“我被告知一个对象将在这里,但我找到了数组的开头”


要修复它,您可以要求Jackson通过将
readValue
的第二个参数更改为
Bar[].class
来反序列化“Bar”对象数组,然后从数组中提取Bar实例,也可以停止在行首添加“[”并切掉“]”使其仅为单个对象,而不是包含该单个对象的数组。

如何从数组中提取bar实例?
[{"createdOn":1601058721310,"lastUpdated":null,"lastUpdatedBy":null,"createdBy":null,"appId":null,"logical":"N","calculationDateTime":1601058721310,"mtaVersionNumber":null,"storageRegionName":"texas","createdOnDate":1601058721310,"lastUpdatedDate":0}]
[{"createdOn":1601058721310,"lastUpdated":null,"lastUpdatedBy":null,"createdBy":null,"appId":null,"logical":"N","calculationDateTime":1601058721310,"mtaVersionNumber":null,"storageRegionName":"texas","createdOnDate":1601058721310,"lastUpdatedDate":0}]
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `object` out of START_ARRAY token
 at [Source: (StringReader); line: 1, column: 1]