Ios 正在检查JSON集合中的零长度数组
我返回了我正在解析的JSON数据集 如果数据包含一条记录,则如下所示:Ios 正在检查JSON集合中的零长度数组,ios,json,nsarray,nsdictionary,nsmutabledictionary,Ios,Json,Nsarray,Nsdictionary,Nsmutabledictionary,我返回了我正在解析的JSON数据集 如果数据包含一条记录,则如下所示: dictData: { Recordset = ( { Record = ( { MyDate = "2016-06-15 11:04:43"; MyID = 53070;
dictData: {
Recordset = (
{
Record = (
{
MyDate = "2016-06-15 11:04:43";
MyID = 53070;
SomeDescription = "";
}
);
}
);
}
如果数据不包含记录,则如下所示:
注意返回集中的“”导致了我的问题。
dictData: {
Recordset = (
""
);
}
我无法解释记录集中的零长度数组
这是我解析数据的基本代码
NSDictionary * dictData = [NSDictionary dictionaryWithDictionary:[someOtherDictionary objectForKey:@"Data"]];
NSArray * arrRecordSet = [dictData objectForKey:@"Recordset"];
if([arrRecordSet objectAtIndex:0] != nil) {
NSLog(@"CONTAINS RECORDS");
//Do something with the records
}
else {
NSLog(@"DOES NOT CONTAIN RECORDS");
}
我尝试过各种迭代,比如检查[arrRecordSet objectAtIndex:0]
长度是否大于零,或者检查计数大小
我想这双引号让我很反感
有什么帮助吗
更新
请求的原始JSON
一条记录
{
APIResponse = {
Data = {
Recordset = (
{
Record = (
{
MyDate = "2016-06-15 11:04:43";
MyID = 53070;
SomeDescription = "";
}
);
}
);
};
};
}
没有记录
{
APIResponse = {
Data = {
Recordset = (
""
);
};
};
}
在这里,您应该首先检查dictionary记录集的all key如果它返回you count>0,则可以说数据可用,如果不可用,则有一个空白条目。因此,如果成功,
记录集
值是一个带字典的数组,如果失败,记录集
值是一个数组用一根绳子
因此:
当您记录arrRecordSet.count时,它显示了什么?它显示的计数为1。如果返回1条记录,它也会显示1的计数。您是否可以显示一个有效的JSON作为示例,而不是解析的nsdictionary的控制台日志?@arturdev我已经更新了这个问题,以包括原始JSON。设计服务器端的人根本不是专业人员,但您可以做的是检查
“记录集”是否
的数组有一个字符串
项,如果没有,则可以检查字典
项。谢谢!这是去检查Iskind of Class的方法!
NSArray *recordSet = response[@"APIResponse"][@"Data"][@"Recordset"];
if ([recordSet count] > 0 &&
[recordSet[0] isKindOfClass:[NSDictionary class]]) {
// Success
NSDictionary *record = recordSet[0];
...
} else {
// Failure
}