2014-02-11 2 views
0

나머지 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 객체

감사를 발견 도움!!!!

+0

또한 twitter4j를 사용할 수 없습니다. 교수님은 우리가 그렇게하도록 허용하지 않습니다. – cdqqa

답변

0

이 링크는 ... 당신은 JSON의 배열은 트위터 API의 반환이 예를 살펴 가지고 개체를 구문 분석하려고하기 때문에 자바 (http://answers.oreilly.com/topic/257-how-to-parse-json-in-java/)

에서 JSON 구문 분석에가는 그러나 가야 http://www.bridgefarmconsulting.com/blog/twitter-authentication/ 블로그 게시물의 마지막 부분에서 작성자가 JSON 객체를 구문 분석하는 데 사용되는 클래스를 작성했음을 알 수 있습니다 ... 그래서 응답 문자열을 얻고 원하는 키를 기반으로 파서 클래스를 만듭니다 액세스하고 그것을 구문 분석하고 싶습니다 ...

희망을 가지고 ...

+0

콜 귀하의 도움에 감사드립니다! 방금 JSON 객체가 "status"라는 필드를 가지고 있다는 것을 알았습니다. 실제적으로 JSON 객체였습니다. – cdqqa

+0

도움이된다면 도움을 주시면 기꺼이 답변 해 드리겠습니다. – addu

관련 문제