2

NSJSONSerialization で twiter 検索 api json データを解析しています。要件は、ハッシュタグでツイートを検索することです。Twitter api コンソール ツールでは、15 個のツイートに関するデータを正しく取得しています。

書かれたコードは

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 ライブラリを使用してみましたが、同様の結果が得られています。

外部ライブラリを使用せずにステータス/ツイート情報の値を取得する方法はありますか?

4

1 に答える 1

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 {

    }
于 2015-12-25T16:39:37.007 に答える