如何提取JSONstring数组?
使用http获取请求我没有得到这个jsonstring:
hello [ { "upid":"1", "uptitle":"test", "uptype":"test", "upsize":"1234", "upname":"test", "upuid":"1", "uplocation":"1", "uptimestamp":"2013-04-11 09:25:40" }, { "upid":"17", "uptitle":"test", "uptype":"video\/mov", "upsize":"2232", "upname":"testing", "upuid":"1", "uplocation":"", "uptimestamp":"2013-04-12 11:47:20" } ]
我怎样才能得到它的格式输出:
upid:1 uptitle:test uptype:test upsize:1234 upname:test upuid:1 uplocation:1 uptimestamp:2013-04-11 09:25:40 upid:17 uptitle:test uptype:video\/mov upsize:2232 upname:testing upuid:1 uplocation: uptimestamp:2013-04-12 11:47:20
这是我的代码:
NSMutableURLRequest *GETrequest = [[NSMutableURLRequest alloc] init]; [GETrequest setURL:[NSURL URLWithString:@"http:someip/upload/?id=1&command=alluseruploads&uid=1"]]; [GETrequest setHTTPMethod:@"GET"]; [GETrequest setValue:@"application/json;charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; // And to send and receive an answer, use a NSURLResponse: NSURLResponse *response; NSData *GETReply = [NSURLConnection sendSynchronousRequest:GETrequest returningResponse:&response error:nil]; NSString *theReply = [[NSString alloc] initWithBytes:[GETReply bytes] length:[GETReply length] encoding: NSASCIIStringEncoding]; NSLog(@"Reply: %@", theReply); // converting string to data NSData *jsonData = [theReply dataUsingEncoding:NSUTF8StringEncoding]; //NSLog(@"dic = %@", jsonData); NSError* error; id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error]; NSLog(@"%@", jsonObject);
您不必导入任何框架,因为它使用核心iOS框架。
如果你有一个名为jsonString
的NSString
那么你可以做这样的事情…
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; // you can skip this step by just using the NSData that you get from the http request instead of converting it to a string. id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData options: NSJSONReadingMutableContainers error:&localError]; NSLog(@"%@", jsonObject);
这将注销到您的对象的控制台。 它将是一个NSArray
或一个NSDictionary
,将包含实例…
NSDate NSDictionary NSArray NSNumber NSString
然后你可以迭代这个对象来获取数据。
好的,使用你的代码…
NSURLResponse *response; NSData *getData = [NSURLConnection sendSynchronousRequest:getRequest returningResponse:&response error:nil]; NSError* error; id jsonObject = [NSJSONSerialization JSONObjectWithData:getData options: NSJSONReadingMutableContainers error:&error]; NSLog(@"%@", jsonObject); NSLog(@"%@", error);
这应该创build你的对象。 您不需要转换为string,然后返回到数据。
使用SBJson库。 很简单