2015-12-25 44 views
2

我解析twiter搜索api json數據與NSJSONSerialization.Requirement是通過hashtag搜索推文。Twitter的api控制檯工具我正確地獲取有關15推文的數據。解析twitter搜索json數據使用NSJSONSerialization

編寫的代碼是

if let results: NSDictionary = NSJSONSerialization .JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments , error: errorPointer) as? NSDictionary { 
      } 

我得到的結果值

{ 
    "search_metadata" =  { 
     "completed_in" = "0.05"; 
     count = 15; 
     "max_id" = 680240431771156480; 
     "max_id_str" = 680240431771156480; 
     "next_results" = "?max_id=680240407322689535&q=%23ChristmasEve&include_entities=1"; 
     query = "%23ChristmasEve"; 
     "refresh_url" = "?since_id=680240431771156480&q=%23ChristmasEve&include_entities=1"; 
     "since_id" = 0; 
     "since_id_str" = 0; 
    }; 
    statuses =  (
       { 
      contributors = "<null>"; 
      coordinates = "<null>"; 
      "created_at" = "Fri Dec 25 04:15:31 +0000 2015"; 
      entities =    { 
       hashtags =     (
             { 
         indices =       (
          0, 
          13 
         ); 
         text = ChristmasEve; 
        }, 
             { 

這是不完整的。 我甚至嘗試過使用SwiftyJSon庫,但我得到了類似的結果。

有什麼方法可以在不使用任何外部庫的情況下獲取狀態/ Tweet信息值?

+0

不知道您的問題是什麼,但我懷疑Twitter響應不是字典,而是數組。 –

回答

1

鑑於您提到您收到多條推文(15),您從API獲取的JSON數據可能是一個數組,而不是字典。當您撥打網絡電話時,處理這兩種情況是一種很好的做法:

do { 
     let object = try NSJSONSerialization.JSONObjectWithData(data, options: []) 
     if let dictionary = object as? [NSObject: AnyObject] { 
      // Handle dictionary 
     } else if let array = object as? [[NSObject: AnyObject]] { 
      // Handle array 
     } 

    } catch { 

    } 
+0

但是在代碼中,我得到了不完整的數據值 – Rohit