1
有人可以告诉我,如果我在这里失去了一些东西......我试图从数据流中解析单个JSON对象。数据流在常规NSString中缓冲,单个JSON对象由EOL标记划定。NSString:EOL和rangeOfString问题
if([dataBuffer rangeOfString:@"\n"].location != NSNotFound) {
NSString *tmp = [dataBuffer stringByReplacingOccurrencesOfString:@"\n" withString:@"NEWLINE"];
NSLog(@"%@", tmp);
}
上面的代码输出“...} NEWLINE {...”,如预期的那样。但是,如果我将上面的if语句中的@“\ n”更改为@“} \ n”,我什么也得不到。
问题是只有当json对象中的值都不包含行尾标记时才起作用。否则,你最终会拆分对象。 问题是,'}'出现在([dataBuffer rangeOfString:@“\ n”]。location - 2)尽管没有空间。出于某种原因,\和n在比较中分别被计为字符。我最终遍历整个字符串并检查每个单独的字符,但我仍然希望有更好的方法。 – carloe 2010-06-11 01:49:43
'{'和'}'必须在JSON中平衡 - 因此您可以计数,如果不平衡,则将下列数组视为流。检查它们以查找需要多少个数组才能完成数据并追加/删除,直到只有一组正确的字符串。 – 2010-06-11 02:36:47