【发布时间】:2020-05-17 19:02:53
【问题描述】:
如何将来自Twitter4J 的JSONObject 转换为IOFile 以与来自BaseX 的JsonParser 一起使用?
因此,希望使用Twitter4J 来获取文件或流。
JsonParser 看起来像 work with 和 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 获得的?
Snippet 使用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;
}
【问题讨论】:
-
是什么让您认为文件是或可以是“获得”的?在使用 Twitter 提要时为什么需要文件?
-
如何将对象转换为字符串并将该字符串写入文件?
-
使用流?专门来自字符串的
ByteArrayInputStream。 -
@Thufir 是的,但我的意思是没有先写信给
File。我很确定JSonParser可以从InputStream中读取,您可以从String.getBytes(charset)中获得ByteArrayInputStream。或Reader和StringReader。啊,Basic IO,你怎么被遗忘了。 -
是 BaseX 库把事情扔掉了,但是不,您不需要将内容存储到文件中并读回内存中已有的内容。
标签: java json xml twitter4j basex