我遇到一个错误使用SBJSON解析器对一个响应字符串从PHP web服务返回:阵列从SBJSON解析器返回无效(IOS)
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSError *error;
SBJSON *json = [SBJSON new];
NSArray *returnedFromWeb = [json objectWithString:responseString error:&error];
[articles_parsed removeAllObjects];
for (int i = 0; i < [returnedFromWeb count]; i++)
{
NSDictionary *dictColumns = [returnedFromWeb objectAtIndex:i];
[self parseArticlesObject:dictColumns];
dictColumns = nil;
}
我接收无法识别的选择发送到实例错误上面调用objectAtIndex。当我检查数组中包含的值(returnedFromWeb)时,它显示有17个对象。然而,检查每个对象是否显示以下错误:
(<invalid>) [0] = <error: expected ']' error: 1 errors parsing expression >
我已经发布数据下面从SBJSON解析器在索引返回的对象[0]下面:
{
0 = {
author = "CCJ Staff";
category1 = Products;
excerpt = "Toyo";
modified = "2014-03-25 08:33:57";
"short_link" = "http://www.example.com/?p=95326";
thumbnail = "http://www.example.com/files/2014/03/ Tire.jpg";
"thumbnail_243x243" = "http://www.example.com/ihz.php?src=/blogs.dir/10/files/2014/03/ Tire.jpg&w=243&h=243&q=100&zc=1";
title = "medium-duty";
};
这里是字符串正在由SBJSON解析(缩短到只包含的第一个对象,在最后的逗号是下一个目标将开始):
{"numberposts":240,"tax_query":[{"taxonomy":"topic","terms":[75,43550,14394,16564,1795,43,22,12950],"field":"term_id","orderby":"date","order":"DESC"}],"0":{"title":"medium-duty","category1":"Products", excerpt":"Toyo","modified":"2014-03-25 08:33:57","author":"Staff","thumbnail":"http://www.ccjdigital.com/files/2014/03/Tire.jpg","short_link":"http://www.ccjdigital.com/?p=95326"},
任何帮助表示赞赏!我对iOS和SBJSON相当陌生,并且一直无法弄清楚为什么我的数组无效。
您是否验证过您从Web服务器接收的json以确保其格式正确? –
您的returnedFromWeb可能不是NSArray,而是NSDictionary。 – streem
另外,'objectWithString'消息会给你一个...一个对象,而不是一个数组。 –