Мог кто-то говорить мне, если я пропускаю что-то здесь... Я пытаюсь проанализировать отдельные объекты JSON из потока данных. Поток данных буферизуется в регулярном NSString, и отдельные объекты JSON очерчены маркером EOL.
if([dataBuffer rangeOfString:@"\n"].location != NSNotFound) {
NSString *tmp = [dataBuffer stringByReplacingOccurrencesOfString:@"\n" withString:@"NEWLINE"];
NSLog(@"%@", tmp);
}
Код выше выводов "...} НОВАЯ СТРОКА {..." как ожидалось. Но если я изменяюсь "\n" в операторе "if" выше к "}\\n", я ничего не получаю.
Почему бы вам не использовать - (NSArray *) componentsSeparatedByString: (NSString * ) разделитель
? Вы можете задать ему разделитель @ "\ n"
, и результатом будет удобный массив строк, представляющих ваши отдельные строки JSON, которые затем можно перебирать.
if([dataBuffer rangeOfString:@"\n"].location != NSNotFound) {
NSArray* JSONstrings = [dataBuffer componentsSeparatedByString:@"\n"];
for(NSString* oneString in JSONstrings)
{
// here's where you process individual JSON strings
}
}
Если вы запутаетесь с завершающим символом "}", вы можете сделать данные JSON недействительными. Просто разбейте его и передайте в библиотеку JSON. После символа "}" легко может быть конечный пробел, который вызывает наблюдаемую вами проблему.