나머지 API를 사용하여 결과를 파싱하려했습니다. get search/tweet API가 Json 배열 대신 Json 객체를 반환 한 것으로 보입니다. 내 질문은 : 반환 된 모든 결과가 배열 대신 개체 인 경우 반환되는 각 결과를 어떻게 구분할 수 있습니까? 여기 나머지 API를 사용하여 트위터 검색 결과를 구문 분석하는 방법
내 코드입니다 :공용 클래스 검색 {
private static final String PROTECTED_RESOURCE_URL = "https://api.twitter.com/1.1/search/tweets.json";
public static void main(String[] args) {
// If you choose to use a callback, "oauth_verifier" will be the return
// value by Twitter (request param)
String s="#NHL";
System.out.println(getTweets(s));
}
public static String getTweetsString(String param) {
OAuthService service = new ServiceBuilder()
.provider(TwitterApi.SSL.class).apiKey(AuthInfo.API_KEY)
.apiSecret(AuthInfo.API_SECRET).build();
Token accessToken = new Token(AuthInfo.ACCESS_TOKEN,
AuthInfo.ACCESS_TOKEN_SECRET);
OAuthRequest request = new OAuthRequest(Verb.GET,
PROTECTED_RESOURCE_URL);
request.addQuerystringParameter("q",param);
request.addQuerystringParameter("count", "2");
service.signRequest(accessToken, request);
Response response = request.send();
System.out.println();
return response.getBody();
}
public static ArrayList<Tweet> getTweets(String param){
ArrayList<Tweet> result = new ArrayList<Tweet>();
String tweets = getTweetsString(param);
try {
InputStream is = new ByteArrayInputStream(tweets.getBytes("UTF-8"));
JsonReader reader = Json.createReader(is);
JsonArray lists = reader.readArray();
for(JsonObject rs: lists.getValuesAs(JsonObject.class)){
System.out.println(rs);
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
}
다음 오류가 보여 주었다 : 는 JSON 배열을 읽을 수 없습니다, 당신을 위해 JSON 객체
감사를 발견 도움!!!!
또한 twitter4j를 사용할 수 없습니다. 교수님은 우리가 그렇게하도록 허용하지 않습니다. – cdqqa