0

こんにちは、JSON のデシリアライズに問題があります。

私は SBJson を使用しています。データは .net Web サービスから返されます。

これは返された JSON (短縮) です

{
    "id": "1",
    "result": [
        {
            "questionID": 21,
            "question": "What is the secret of eternal life?"
        },
        {
            "questionID": 20,
            "question": "What is the meaning of life?"
        }
    ]
}

私はこれまでのところ、次のコードを使用しています

-(void) dataLoaded:(NSData*)data {

    NSString* jsonString = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];

    NSDictionary *jsonObject = [jsonString JSONValue];    

        NSLog(@"data : %@", [jsonObject valueForKey:@"result"]);
 }

次の行 [jsonObject valueForKey:@"result"] は、次のデータを返します

(
        {
        question = "What is the secret of eternal life?";
        questionID = 21;
    },
        {
        question = "What is the meaning of life?";
        questionID = 20;
    }
)

そのデータを配列に取得するにはどうすればよいですか?

Jsonを使用したのはこれが初めてなので、何が起こっているのか完全にはわかりません。

ありがとうミック

4

1 に答える 1

1

すでに配列を取得しています...次のようなものを使用して、この配列へのポインターを作成できます。

NSDictionary *jsonObject = [jsonString JSONValue];
NSArray *myJsonArray = [jsonObject valueForKey:@"result"];

編集(いくつかのコメントの後)

をログに記録し、投稿した内容[jsonObject valueForKey:@"result"]NSLog出力しているので、オブジェクトがNSArray.

次のようにカウントしてログに記録できます ( に注意して%dください)。

int c = [myJsonArray count];
NSLog("My array's count is: %d", c);
于 2012-05-02T10:57:42.440 に答える