首页 > 解决方案 > 如何从 JSONObject 获取文件或流?

问题描述

如何将JSONObjectfromTwitter4J转换为与fromIOFile一起使用的?JsonParserBaseX

因此,希望用于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 

如何FileJSONObject这里获得?

片段使用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;
}

标签: javajsonxmltwitter4jbasex

解决方案


从文件中写入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,或者至少是最实用的方法。其他解决方案表示赞赏。


推荐阅读