beans 和 Jackson 库的问题

2024-01-12

HI!

我正在使用 .json 文件,如下所示:

[{  
  "SourceFile": "videos/KobeAlleyOop.flv",  
  "ExifTool": {  
    "ExifToolVersion": 8.22,  
    "Warning": "Truncated 'mdat' data"  
  },  
  "System": {  
    "FileName": "KobeAlleyOop.flv",  
    "Directory": "videos",  
    "FileSize": "4.8 MB",  
    "FileModifyDate": "2010:06:15 14:57:24+02:00",  
    "FilePermissions": "rwxr-xr-x"  
  },  
  "File": {  
    "FileType": "MP4",  
    "MIMEType": "video/mp4"  
  }]  

我制作了一个包含 3 个组件的 Bean:

 public class MetadataContentBean {   
 SourceFileBean sourceFileBean;  
     FileBean fileBean;    
     SystemBean systemBean;   

     public FileBean getFileBean() {   return fileBean;  }   
 @JsonProperty("File")    
public void setFileBean(FileBean fileBean) {    
 this.fileBean = fileBean;    }   
 public SystemBean getSystemBean() {   
 return systemBean;    }   
 @JsonProperty("System")    
public void setSystemBean(SystemBean systemBean) {
 this.systemBean = systemBean;    }   
 public SourceFileBean
 getSourceFileBean() {    
 sourceFileBean.getSource();     return
 sourceFileBean;    }     
 @JsonProperty("SourceFile")    
public void setSourceFileBean(SourceFileBean
 sourceFileBean) {    
 this.sourceFileBean = sourceFileBean; 
 }   }

我添加了一个SourceFileBean的例子,其他的类似:

public class SourceFileBean {

 private String source;
 public String getSource() {
  return source;
 }
 @JsonProperty("SourceFile")
 public void setSource(String source) {
  this.source = source;
 }
}

在主程序中我进行了这样的调用:

InputStream is = this.getClass().getClassLoader().getResourceAsStream(filename);  
    String jsonTxt = IOUtils.toString(is);  
    JSONArray json = (JSONArray) JSONSerializer.toJSON(jsonTxt);  
    JSONObject metadatacontent = json.getJSONObject(0);  
    ObjectMapper mapper = new ObjectMapper();  mapper.readValue(metadatacontent.toString(),MetadataContentBean.class);

但是我运行的时候出现这个错误,不知道为什么:

org.codehaus.jackson.map.JsonMappingException: 无法构造实例 com.path.bean.SourceFileBean, 问题:没有合适的创建者方法 发现于[来源: java.io.StringReader@12d7a10;行:1, 列:2] 在 org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:159) 在 org.codehaus.jackson.map.deser.StdDeserializationContext.instantiationException(StdDeserializationContext.java:212) 在 org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromString(BeanDeserializer.java:415) 在 org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:291) 在 org.codehaus.jackson.map.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:135) 在 org.codehaus.jackson.map.deser.SettableBeanProperty$MethodProperty.deserializeAndSet(SettableBeanProperty.java:221) 在 org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:390) 在 org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:286) 在 org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:1588) 在 org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1116) 在 com.path.parser.JSon.Parser(JSon.java:65) 在 com.path.parser.JSon.main(JSon.java:29)

有什么帮助吗?提前致谢!


我猜测这只是因为您的 JSON 表示一个数组,其中包含一个对象。您要求杰克逊将此数组数据反序列化到单个实例上MetadataContentBean,这是它做不到的。

尝试删除[]将 JSOn 括起来,然后重试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

beans 和 Jackson 库的问题 的相关文章

随机推荐

  • 为什么 ScheduledExecutorService 在抛出异常后不再运行任务?

    为了执行定期任务 我查看了Timer http download oracle com javase 6 docs api java util Timer html and ScheduledThreadPoolExecutor http
  • Java如何对链表进行排序?

    我需要按字母顺序对链接列表进行排序 我有一个包含乘客姓名的链接列表 需要按字母顺序对乘客姓名进行排序 一个人会怎样做呢 有人有参考资料或视频吗 您可以使用Collections sort http download oracle com j
  • 如何创建一个不破坏严格别名的 uint8_t 数组?

    我最近问了这个问题 使用此指针会导致热循环中奇怪的去优化 https stackoverflow com questions 26295216 using this pointer causes strange deoptimization
  • 无法让预制作工作 - 过度演示

    https bitbucket org alfonse gltut downloads https bitbucket org alfonse gltut downloads 这是这本在线书中的几个教程的存储库 http www arcsy
  • Discord.py 时间表

    这就是我到目前为止所拥有的 确实适用于我想要的延迟秒数 但是如何添加时间模块或时间表模块以使其工作 以防万一我希望机器人每 24 小时发送一次消息 import discord import asyncio from discord ext
  • 什么是 git 上游

    当您创建了 github repo 并将 github repo 添加为远程时 git remote add origin https github com githubname reponame git 那么你需要推送你的第一次提交 gi
  • Firebase + 权限

    我刚刚将一款应用从 Firebase 9 0 0 更新到 Firebase 9 0 2 我使用消息 广告 compile com google firebase firebase messaging 9 0 2 compile com go
  • 将 Xml 解析为数组 (Swift)

    struct person var name var sex var age var personArray person 我的Xml字符串包含两组数据 a a
  • Bootstrap 菜单在单击时更改 li 活动类

    我通过引导程序有以下菜单 HTML div class navbar collapse collapse ul class nav navbar nav li class active a href Home Home a li li a
  • PHPExcel 导出不起作用:显示“无法访问该网站”

    我已经从服务器克隆了一个项目并安装在我的本地设置中 我正在尝试使用 PHPExcel 将 Excel 文件导出到浏览器 它在服务器中运行良好 但是本地设置有问题 我还检查了列和字段的数量 它们都很好 下面是代码
  • Rails gem Ransack -> 使用“is null”和特定值搜索“或条件”(field=x OR field IS NULL)

    我为我们的支持者制作了一个支持票系统 使用 ruby on Rails 进行编程 Ruby 1 9 3 Rails 3 2 有一个票证模型belongs to与用户 支持者 的关联 我使用 Ernie 的 gem Ransack 进行搜索
  • Intellij 尝试将 pom.xml 视为 jar 文件

    在尝试从 Intellij 运行测试 在 Maven 项目上 时 我不断收到下面提到的错误 my module Exception in parsing jar file for extract from jar path to pom x
  • WooCommerce:按产品类别划分的自定义购物车项目计数

    I found 这个脚本 https docs woothemes com document show cart contents total 这允许我在 WooCommerce 中的购物车图标上方显示购物车内容总数 a class car
  • 在 Windows 上使用 C++ 获取当前用户名

    我正在尝试创建一个程序 使用 C 在 Windows 上检索当前用户的用户名 我试过这个 char userName getenv LOGNAME stringstream ss string userNameString ss lt lt
  • 无法缩进 UITableViewCell 子类

    我对 UITableViewCell 进行了子类化 以创建带有一个按钮和 2 个标签的自定义单元格 使用 Dave Mark 的 Beginning iPhone Development 中概述的模式从 xib 加载单元格定义 这是基本代码
  • Entity Framework Core 是否支持 Union?

    我正在尝试使用 union 查询 EF Core 中的多个表 如下所示 但它不允许 请找到该查询 并附上 net core框架提供的错误提示上的图像 var query context Brand Select x gt new Brand
  • SWT 日期时间格式更改

    我正在使用 DateTime SWT 组件 它在显示时具有美国格式 mm dd yyyy 有什么方法可以将格式更改为 dd mm yyyy 吗 DateTime uses http dev eclipse org mhonarc lists
  • 使用 XPath 选择命名空间中的元素

    我想选择具有给定命名空间 前缀 的文档中最顶层的元素 更具体地说 我的 XML 文档要么以 html body 在 XHTML 命名空间中 开头 要么以特定命名空间中的多个元素之一开头 我实际上想删除 html body 并只返回正文内容或
  • jQuery 自动完成,将成功数据传递给 select 方法

    我有 json 响应 它有一些属性 我已经为列表创建了一个数组 当我单击列表项时 一些输入将由项目 ID 填充 为此 我正在考虑将完整的数据对象传递给 select 方法 然后如果单击列表中的某个项目 我将在数据对象中搜索 id 如果找到
  • beans 和 Jackson 库的问题

    HI 我正在使用 json 文件 如下所示 SourceFile videos KobeAlleyOop flv ExifTool ExifToolVersion 8 22 Warning Truncated mdat data Syste