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