4

サーバーに JSON があり、NSDictionary への iOS アプリに解析されます。NSDictionary は次のようになります。

(
        {
        text = Aaa;
        title = 1;
    },
        {
        text = Bbb;
        title = 2;
    }
)

私の質問は、最初の次元からテキストだけを取得する方法なので、「Aaa」にする必要があります。私はこれを使用しようとしました:

[[[json allValues]objectAtIndex:0]objectAtIndex:0];

しかし、それは機能しませんでした、それはエラーで終了します

Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '-[__NSCFArray allValues]:
unrecognized selector sent to instance 0x714a050'

指定されたインデックスから値を 1 つだけ取得する方法を教えてください。ありがとう!

4

3 に答える 3

6

このエラー メッセージは、NSDictionary(その配列の最初のオブジェクトであり、2 番目のオブジェクトである) が に応答しないことを示しているだけobjectAtIndexです。

これは少しコーディになりますが、より適切に説明しています。

NSArray *jsonArray = [json allValues];
NSDictionary *firstObjectDict = [jsonArray objectAtIndex:0];
NSString *myValue = [firstObjectDict valueForKey:@"text"];
于 2013-09-08T11:48:43.153 に答える
5

JSON オブジェクトは、2 つの辞書を含む配列です。値を取得する方法は次のとおりです。

NSDictionary* dict1= json[0];
NSString* text= dict1[@"text"];
NSString* title= dict1[@"title"];
于 2013-09-08T11:49:53.733 に答える
0

これを試して:

NSString *txt = [[json objectAtIndex:0] objectForKey:@"text"];

更新:エラーを修正しました。ありがとうユナス。

于 2013-09-08T11:55:53.307 に答える