У меня возникли проблемы с разбором моего объекта JSON в течение последних 6 часов. В моем коде, я раздел ответ JSON от сервера (который был сохранен в качестве объекта NSData), используя следующий метод:iOS: NSJSON Сериализация: неправильный код или неправильная структура JSON?
NSMutableDictionary * responseDataRaw = [NSJSONSerialization JSONObjectWithData:serverResponse options: kNilOptions error:nil];
И это структура NSMutableDictionary я могу NSLog:
{
Content = (
{
0 = (
{
DatePosted = "September 23, 2014 at 09:10pm";
ID = 64;
MemberID = "Ken Ang";
Message = "I won't be left out :D";
PostNumber = 1;
Status = 1;
Subject = "Hello from US!";
TopicID = {
DatePosted = "September 23, 2014";
Enabled = "<span class='label' style='background-color:#17A647; color:#fff'>Yes</span>";
ForumID = 1;
FriendlyURL = "19-";
ID = 19;
MemberID = 1;
Title = "Hello from US!";
ViewCount = 288;
};
UserID = 1;
Username = kenang;
}
);
1 = (
{
DatePosted = "December 17, 2014 at 03:27pm";
ID = 66;
MemberID = "Nobody know";
Message = "Hai from Chech";
PostNumber = 2;
Status = 1;
Subject = "Re: Hello from US!";
TopicID = {
DatePosted = "September 23, 2014";
Enabled = "<span class='label' style='background-color:#17A647; color:#fff'>Yes</span>";
ForumID = 1;
FriendlyURL = "19-";
ID = 19;
MemberID = 1;
Title = "Hello from US!";
ViewCount = 288;
};
UserID = 15;
Username = admin;
}
);
Forum = "Member Introduction";
ForumID = 1;
ForumTopicTitle = "Hello from US!";
}
);
Count = 2;
}
Затем я намерен сохранить значение «0» и «1» в качестве NSDictionary, используя следующий метод, но была вызвана ошибка во время выполнения:
NSArray * responseData = [responseDataRaw objectForKey:@"Content"];
for (id arrayItems in responseData)
{
NSMutableArray * validKeys = [NSMutableArray array];
//Enumerate and collect the valid keys: only "0" and "1". So will do a numeric test.
for (id itemsInside in [arrayItems allKeys])
{
NSScanner *scanner = [NSScanner scannerWithString:itemsInside];
BOOL isNumeric = [scanner scanInteger:NULL] && [scanner isAtEnd];
if (isNumeric)
{
[validKeys addObject:itemsInside];
}
}
//Using the key to parse the info into our readable NSDictionary
for (NSString * individualKey in validKeys)
{
NSDictionary * testPost = [arrayItems objectForKey:individualKey];
....
....
}
Я не может сохранить значение в качестве NSDictionary на T он переменный testPost. Сообщение об ошибке, которое у меня есть, это
[__NSCFArray objectForKey:]: unrecognized selector sent to instance 0x170465040
Кто-нибудь знает, что мне делать? Мне нужно сохранить значения «0» и «1» в качестве словаря, так как мне нужны элементы в них, чтобы позже вклеить в ячейку таблицы.
Справка!
использовать этот сайт для проверки вашего json http://jsonlint.com/ – ErasmoOliveira
@ErasmoOliveira Я проверял и его действительный JSON. – Marcus
Если бы это было не так, json, он бы не смог проанализировать словарь @ErasmoOliveira – vikingosegundo