2010-08-24 106 views
1

我試圖解析這樣的JSON文件,通過Exiftool產生:解析JSON爲Java Bean

[{ 
    "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' 

我檢查了幾個論壇,但解決方案是這樣的,所以我不知道爲什麼我沒有得到結果。

有什麼想法?

回答

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

在這個元是所有信息

+0

https://github.com/SpotterRF/json-examples/tree/master/java/jackson有一個很好的例子 – CoolAJ86 2012-04-24 22:23:01