0

我是一名新的 iOS 开发人员,他有一个大应用程序要编写。首先我们有一个服务器,杰森在哪里。我必须从该服务器获取数据并解析它。并将数据显示在 UIView 等显示的各个位置。但是,问题是,我可以连接到服务器,获取数据并解析它,但我无法在括号中显示数据。让我解释:

我们的 JSON 数据是这样的:

{
"mbsServer": {
    "version": 1,
    "serverTime": 1374400122,
    "status": 2000,
    "subscriptionExpireTime": 1575057600,
    "channel": {
        "id" : 47,
        "name" : "Yurd TV",
        "logo" : "XXX.png",
        "screenshot" : "screen.png",
        "packageId" : 0,
        "viewers": 1,
        "access": true,
        "streams" : [
                {
                    "birate" : 200,
                    "hls"  : "xxxx.m2u8",
                    "rtsp" : "RTSP.xx"
                },
                {
                    "birate" : 500,
                    "hls"  : "xxxxx",
                    "rtsp" : "xxxxx"
                }
        ]
    }

}
}    

我想得到objectForKey:@"hls",但我不能。它只是让我获取来自 JSON 的所有数据。我的代码如下所示:

NSData *JSONData = [[NSData alloc] initWithContentOfURL: [NSURL URLLWithString:@"XXXXXXXXXXX"]];
NSArray *streams = [JSONData objectFromJSONData];
for(NSDictionary *hls in streams)
{
   NSLog(@"%@", [hls objectForKey:@"hls"]);
}

请帮忙...

4

2 回答 2

1

你没有streams正确地得到数组。尝试以下操作:

NSObject *json = [JSONData objectFromJSONData];
NSArray *streams = [json valueForKeyPath:@"mbsServer.channel.streams"];
for (NSDictionary *stream in streams)
{
    NSLog(@"%@", [stream valueForKey:@"hls"]);
}
于 2013-07-21T10:03:36.947 回答
1

根对象应该是一个NSDictionary而不是NSArray- 或者如果你想从 JSON 中获取流数组,那么你访问它是错误的 - 请参阅Alex Skalozub的答案。

于 2013-07-21T10:11:00.900 回答