java - 如何从 JSONObject 获取文件或流?
问题描述
如何将JSONObject
fromTwitter4J
转换为与fromIOFile
一起使用的?JsonParser
BaseX
因此,希望用于Twitter4J
获取文件或流。
JsonParser
看起来很好用File
:_
JsonParser
public JsonParser(IO source,
MainOptions opts,
JsonParserOptions jopts)
throws java.io.IOException
Constructor.
Parameters:
source - document source
opts - database options
jopts - parser options
Throws:
java.io.IOException - I/O exception
虽然其他IO
作品:
org.basex.io
Class IO
java.lang.Object
org.basex.io.IO
Direct Known Subclasses:
IOContent, IOFile, IOStream, IOUrl
如何File
从JSONObject
这里获得?
片段使用Twitter4J
:
private JSONObject jsonOps(Status status) throws JSONException, BaseXException {
String string = TwitterObjectFactory.getRawJSON(status);
JSONObject json = new JSONObject(string);
String language = json.getString("lang");
log.fine(language);
return json;
}
解决方案
从文件中写入JSONObject
文件Twitter4J
似乎可行,至少手动打开文件时看起来正确:
public void writeJsonToFile(String fileName) throws FileNotFoundException, UnsupportedEncodingException, IOException {
FileOutputStream fileOutputStream = null;
OutputStreamWriter outputStreamWriter = null;
BufferedWriter bufferedWriter = null;
fileOutputStream = new FileOutputStream(fileName);
outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");
bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.write(tweets.toString());
bufferedWriter.close();
outputStreamWriter.close();
fileOutputStream.close();
}
并且一旦文件被写入,似乎很容易“解析” JSON
,或者至少实例化一个解析器,如下所示:
private void parseJsonFile(String fileName) throws IOException {
JsonParser jsonParser = new JsonParser(new IOFile(fileName), new MainOptions());
}
github上的完整代码。
这绝不是一个完整的解决方案。事实上,将其写入JSON
文件似乎是一件很麻烦的事情——但它确实存在。
似乎是将JSON
数据从移动Twitter4J
到的唯一方法BaseX
,或者至少是最实用的方法。其他解决方案表示赞赏。