将Twitter4j状态转换为JSON对象

时间:2013-07-23 16:12:14

标签: android json twitter4j

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解析esp的新手,将事物转换为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();
}

2 个答案:

答案 0 :(得分:6)

这是解析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");

答案 1 :(得分:1)

我有办法从Status对象获取值,而无需将其转换为JSON。当然这是非常基本的,我忽略了它。从Status对象获取值时遇到问题的人可以看一下。

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