0

嗨,我在 JSON 反序列化方面遇到问题。

我正在使用 SBJson,数据是从 .net 网络服务返回的。

这是返回的 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 回答