java - 将 Json 解析为 Java bean

标签 java json exiftool

我正在尝试解析这样的 Json 文件,由 Exiftool 生成:

[{
  "SourceFile": "videos/XaviHernandez.flv",
  "ExifTool": {
    "ExifToolVersion": 8.22
  },
  "System": {
    "FileName": "XaviHernandez.flv",
    "Directory": "videos",
    "FileSize": "16 MB",
    "FileModifyDate": "2010:06:17 09:57:21+02:00",
    "FilePermissions": "rw-r--r--"
  },
  "File": {
    "FileType": "FLV",
    "MIMEType": "video/x-flv"
  }
}]

在具有以下结构的 Java bean 中:

public class MetadataContentBean {
    ExifToolBean exiftoolBean;
    String SourceFile;
    FileBean fileBean;
    SystemBean systemBean;
//Getters and setter
}

我的java代码是这样的:

    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();
    MetadataContentBean meta = new MetadataContentBean();
    mapper.readValue(metadatacontent.toString(), MetadataContentBean.class);
    meta= (MetadataContentBean) JSONObject.toBean(metadatacontent, MetadataContentBean.class);

但我收到此错误:

net.sf.json.JSONException: java.lang.NoSuchMethodException: Unknown property 'ExifTool'
    at net.sf.json.util.PropertySetStrategy$DefaultPropertySetStrategy.setProperty(PropertySetStrategy.java:45)
    at net.sf.json.JSONObject.setProperty(JSONObject.java:1477)
    at net.sf.json.JSONObject.toBean(JSONObject.java:468)
    at net.sf.json.JSONObject.toBean(JSONObject.java:253)
    at com.playence.parser.JSon.Parser(JSon.java:66)
    at com.playence.parser.JSon.main(JSon.java:28)
Caused by: java.lang.NoSuchMethodException: Unknown property 'ExifTool'

我查了几个论坛,但解决方案是这样的,所以我不知道为什么我没有得到结果。

有什么想法吗?

最佳答案

ObjectMapper mapper = new ObjectMapper();
MetadataContentBean meta= mapper.readValue(metadatacontent.toString(), MetadataContentBean.class);

此元数据包含所有信息

关于java - 将 Json 解析为 Java bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3555257/

相关文章:

java - 能否将 Eclipse 格式化程序配置为在括号之间正确缩进多行?

windows - 将元数据从一个文件批量复制到另一个文件 (EXIFTOOL)

java - 是否有解决 Java 在遍历大型目录时性能不佳的方法?

java - recyclerView 小部件中的下一个焦点方向

javascript - 如何通过路由值将 JSON 数组发送到操作方法 (MVC 4)

php - 返回 Laravel 中的父模型列

c# - 使用 Newtonsoft.Json 反序列化 Json 数组

java - Exiftool 未在 ProcessBuilder 中打印到文件?

json - 导出的 Google+ 照片,如何将 JSON 数据转换为 EXIF?

java - 使用 javassist 从 jar 中解析类