我正在试图弄清楚如何检索存储在JsonObject中的原始字节并将其转换为InputStream对象?
我认为它可能是这样的:
InputStream fis = new FileInputStream((File)json.getJsonObject("data"));
当然,我没有尝试过,但只是想知道是否有人有这方面的经验,并知道这样做的首选方式?
答案 0 :(得分:13)
您可以将JSONObject
转换为其String
表示形式,然后将该字符串转换为InputStream
。
问题中的代码将JSONObject强制转换为File
,但我不确定它是否按预期工作。然而,以下是我以前做过的事情(目前从记忆中复制):
String str = json.getJSONObject("data").toString();
InputStream is = new ByteArrayInputStream(str.getBytes());
请注意,toString()
的{{1}}方法会覆盖JSONObject
类中的方法。
来自Javadoc:
返回:对象的可打印,可显示,可移植,可传输的表示形式,以{(左括号)开头,以}结尾(右大括号)。
答案 1 :(得分:5)
如果你想要字节,请使用此
json.toString().getBytes()
或写一个文件savedFile
包含json.toString,然后
InputStream fis = new FileInputStream(savedFile);