2013-07-23 64 views
1

Android 2.3.3将Twitter4j状态转换为JSON对象

我正在将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(); 
} 

回答

1

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

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

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"); 
+0

感谢您的帮助.. –

+0

工作得很棒! –