2016-06-18 6 views
0

これは私が間違っていることを明らかにしているに違いありません。私は何が起こっているのか把握しようと壁に頭を叩いている。私はすでにこのjsonの解析をアプリケーションのアンドロイド版で行いましたが、今xcodeでこの単純なjsonを解析しようとしています。単一オブジェクトjson解析 - 何が間違っていますか?

NSError *myError = nil; 
NSDictionary *res = [NSJSONSerialization JSONObjectWithData:self.responseData options:kNilOptions error:&myError]; 
NSLog([res objectForKey:@"Date"]); 

このコードでは、「インスタンスに送信されたセレクタが認識されません」というエラーが表示されます。ここで

はJSONデータであり、あなたは、日付が目的の一つである見ることができます。この問題上の任意の助けを事前に

[{"Date":"2016-06-17T22:56:33.0811255-05:00"}] 

感謝。私はこの投稿を単純化しようとしましたが、もっと情報が必要な場合は、私は試してすぐに提供します。

http://i.stack.imgur.com/Y5fsT.png

+0

私は@Fogmeisterとの会話を持っていたが、私は、画像を追加したとき、会話履歴が消えました。 – Will

+0

例外メッセージを表示してください。認識できないセレクタは、あなたがオブジェクトに気分を呼んだが、そのメソッドが存在しないことを意味する。例外メッセージには、どのオブジェクトとどのメソッドが表示されます。 – Paulw11

+0

添付されている画像はオブジェクトres用です。 – Will

答えて

2

JSONObjectWithData辞書の配列ではなく辞書を返しています。あなたは辞書のようなその応答オブジェクトを処理しようとしているが

[{"Date":"2016-06-17T22:56:33.0811255-05:00"}] // This is an array

:生のJSONのうちあなたの印刷はこれを確認しました。そうすることで、配列の辞書メソッド(objectForKey:)を呼び出すことになります。これによりクラッシュが発生します。

+0

私のresオブジェクトは実際に辞書の配列であると言っていますか?その後、どのように配列内の最初の辞書を参照できますか?私はres [0]とres [0] [@ "Data"]のdiffバージョンで遊んできましたが、何も動いていません。 – Will

+0

ありがとうございます。私は今、そのコードで遊んでいます。 – Will

+0

はい、まさに私が言っていることです。もう少し早くコードを投稿します。 –

0

これは、最初にresを[NSDictionary]と設定する必要があるためです。その配列の最初の要素を選択し、objectForKey: "Date"を取得します。通常のJSONデータは{で始まり、で始まります。それは配列であることを意味します。

@:1要素と表示されているスクリーンショットで自分で見ることができます。それからそれは1つのキーと値のペアを言います。 NSDictionaryのはarray.NSErrorこのコードを試してみてください

内にある:

*myError = nil; 
[NSDictionary] *res = [NSJSONSerialization JSONObjectWithData:self.responseData options:kNilOptions error:&myError]; 

if (res.count > 0) { 
NSLog([res[0] objectForKey:@"Date"]); 
} 
+0

私はdiffをしようとしていますが、構文が間違っています。あなたが言っていることの例を私に教えてもらえますか? – Will

+0

私は試してみるべきいくつかのコードで私の答えを更新しました。私はObjective-Cでこれを試しませんでした。私はSwiftしか知りません。しかし、それがどのように機能するか教えてください。 – QuantumHoneybees

+0

私は[0]を解決しようとしましたが、エラーが発生しました:NSDictionary型のオブジェクトに配列要素が見つかりません。 – Will

関連する問題