如何从JsonObject创建InputStream对象

时间:2014-05-22 20:20:36

标签: java json file rest inputstream

我正在试图弄清楚如何检索存储在JsonObject中的原始字节并将其转换为InputStream对象?

我认为它可能是这样的:

InputStream fis = new FileInputStream((File)json.getJsonObject("data"));

当然,我没有尝试过,但只是想知道是否有人有这方面的经验,并知道这样做的首选方式?

2 个答案:

答案 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);