【发布时间】:2013-02-12 10:11:37
【问题描述】:
如何将流 API json 与 jackson 一起使用?请参阅下面的代码:
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> map = new HashMap<String, Object>();
List<Object> list = new ArrayList<Object>();
// Get images in database
try {
Class.forName(DRIVER);
connection = DriverManager.getConnection(URL, USER, PASSWORD);
Statement s = connection.createStatement();
ResultSet r = s.executeQuery("select * from images");
while (r.next()) {
byte[] imageBytes = r.getBytes("image");
String imageBase64 = DatatypeConverter.printBase64Binary(imageBytes);
list.add(imageBase64);
}
} catch (SQLException e) {
}
map.put("images", list);
// Stream Json API
try {
mapper.writeValue(new File("c:\\images.json"), map);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
总是返回内存不足。我不知道将流与杰克逊一起使用。我使用超大 json,平均 2000 张图像,每个图像都有一个 imageBase64。我做错了什么?
【问题讨论】:
-
@SotiriosDelimanolis 非常好,非常感谢。解决内存不足的问题。现在,如何显示生成的 json?
-
你可以通过一些 InputStream 读取文件,把它塞进一个字符串,然后打印出来。
-
@SotiriosDelimanolis 好!谢谢。
-
@SotiriosDelimanolis 当我阅读 json 文件时同样的问题。天哪,我疯了..
标签: java json stream base64 jackson