【问题标题】:Convert Twitter4j Status to JSON Object将 Twitter4j 状态转换为 JSON 对象
【发布时间】:2013-09-23 21:51:35
【问题描述】:

Android 2.3.3

我正在将 Twitter API 集成到我的 android 应用程序中。我正在使用 Twitter4j。​​

我可以使用以下代码获取特定用户的推文。

Paging paging = new Paging(1, 40);
List<twitter4j.Status> statuses = twitter.getUserTimeline("xxx", paging);

Log.d(Const.TAG,"Showing Timeline.");
for (twitter4j.Status status : statuses) {
    String rawJSON = DataObjectFactory.getRawJSON(status);
}

我的要求是我需要解析 JSON 字符串 (rawJSON),以获取其他一些值,例如发布日期等。

我对 JSON 解析非常陌生,尤其是将事物转换为 JSON。我在上面的代码中所知道的是,String rawJSON = DataObjectFactory.getRawJSON(status);Status Object 转换为String,我可以通过记录它来查看它。

如何将此String 转换为JSONObjectJSONArray?谁能给我一个示例代码?

我尝试了下面的代码,但它给出了一个异常

try {
    JSONObject tweet = new JSONObject(rawJSON);
    JSONArray textArray = tweet.getJSONArray("text");
    String text = textArray.getString(0);

    Log.d(Const.TAG, "Text = "+text);

} catch (JSONException e) {
    // TODO Auto-generated catch block
    Log.d(Const.TAG, "Error while converting string to json");
    e.printStackTrace();
}

【问题讨论】:

    标签: android json twitter4j


    【解决方案1】:

    这是我解析 Twitter4j Status 的代码。此示例获取推文的语言。

    //Status To JSON String
    String statusJson = DataObjectFactory.getRawJSON(status);
    
    //JSON String to JSONObject
    JSONObject JSON_complete = new JSONObject(statusJson);
    
    //We get another JSONObject
    JSONObject JSON_user = JSON_complete.getJSONObject("user");
    
    //We get a field in the second JSONObject
    String languageTweet = JSON_user.getString("lang");
    

    【讨论】:

      【解决方案2】:

      我有一种方法可以从 Status 对象中获取值,而无需将其转换为 JSON。当然这是非常基础的,我忽略了。从Status对象获取值有困难的人可以看看这个。

      您可以使用Status 的对象获取所有值。 例如,如果“status”是Status的一个对象,我们可以通过status.getText()获取推文的文本,通过status.user()等获取用户值。只需稍微处理一下状态对象,您就会找到所需的所有值。

      【讨论】:

        猜你喜欢
        • 2015-03-10
        • 2018-05-19
        • 1970-01-01
        • 2017-06-16
        • 1970-01-01
        • 2017-01-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多