我采用两种办法解析数据都不成功,求大侠解救!
我的json数据的组成是这样的:服务器是把一个Arraylist
[{"CAjk":"","CBh":"EFE3268D1AE4B9B59B0D19B0C78A1EAE","CCfcs":"北京","pwlist":[{"CBh":"EFE3268D1AE4B9B59B0D19B0C78A1EAE","qfsj":"2013-5-23"}{"CBh":"EFE3268D1AE4B9B59B0D39B0C78A1EAE","qfsj":"2013-5-23"}]}{{"CAjk":"","CBh":"EFE3268D1AE4B9B59B0D19B0C88A1EAE","CCfcs":"北京","pwlist":[{"CBh":"EFE3268D1AE4B9B59B0D19B0C78A2EAE","qfsj":"2013-5-23"}{"CBh":"EFE3268D1AE4B9B59B0D39B0C78A3EAE","qfsj":"2013-5-23"}]}]
我试过的第一种方法是 采用原生的自带的json解析
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];
另一种方法是用第三方的包JSONKit解析
NSDictionary *dic =[data objectFromJSONData];
这两种方法都无法把数据转换为数据字典,我在找问题的时候发现,如果我把ArrayList的每一个object A当中又包含了一个ArrayList
最后找到原因 并不是因为解析数据的问题,原因是:
首先:我用下面的代码连接服务器
{
NSURL *finalURL = [NSURL URLWithString:urlWithParams];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:finalURL cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30];
NSURLConnection *urlConnection = [NSURLConnection connectionWithRequest:urlRequest delegate:self];
[urlConnection start];
}
{
由于我刚刚学IOS所以对这里的机制不了解,我以为这里返回的数据是完整的,然后就开始扒拉扒拉解析数据,
在这里data是多次返回的,数据并不完整,数据量多的时候,我很难发现。所以我们需要完整的数据。
于是需要下面的这一行代码。
[_receiveData appendData:data];//记得声明@property NSMutableData *receiveData;
}
真正的解析要在下面的这里开始
(void)connectionDidFinishLoading:(NSURLConnection *)connection{
[self jiexiJson];
}
-(void)jiexiJson{
NSError *error=nil;
NSDictionary *resultDir=[NSJSONSerialization JSONObjectWithData:_receiveData options:NSJSONReadingMutableContainers error:&error];
NSArray *resultArray=(NSArray *)resultDir;
NSUInteger resultcount=[resultDir count];
for (int i=0; i<resultcount; i++) {
NSDictionary *data1=[resultArray objectAtIndex:i];
FlightInto *flight=[FlightInto alloc];
[flight setCBh:[data1 objectForKey:@"CBh"]];
[flight setCAjk:[data1 objectForKey:@"CAjk"]];
[flight setCCfcs:[data1 objectForKey:@"CCfcs"]];
[flight setCDdcs:[data1 objectForKey:@"CDdcs"]];
[flight setCDjk:[data1 objectForKey:@"CDjk"]];
[flight setCFjxh:[data1 objectForKey:@"CFjxh"]];
。。。。。。。。。。。
}
}
. ios是操作系统,怎么解析json...至少得说什么开发语言吧... 你这段json有问题 键值需要加引号,数组要用中括号,属性用逗号隔开,给你写一个吧: [{ "isconf": 0, "link": "http:", "name": "A", "type": "\U8f6f"},{ "isconf": 0, "link": "http:", "name": "A", "type": "\U8ba1"},{ "isconf": 0, "link": "http:", "name": "I", "type": "\U8ba1"},{ "isconf": 1, "link": "http:", "name": "A", "type": "\U8f6f"},{ "isconf": 1, "link": "http:", "name": "I", "type": "\U4eba"},{ "isconf": 1, "link": "http://", "name": "A", "type": "\U8f6f"}]
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。