1

ここで何かが足りない場合は、誰かに教えてもらえますか...データストリームから個々のJSONオブジェクトを解析しようとしています。データストリームは通常のNSStringでバッファリングされ、個々のJSONオブジェクトはEOLマーカーで示されます。

if([dataBuffer rangeOfString:@"\n"].location != NSNotFound) {
  NSString *tmp = [dataBuffer stringByReplacingOccurrencesOfString:@"\n" withString:@"NEWLINE"];
  NSLog(@"%@", tmp);
 }

上記のコードは、期待どおりに「...}NEWLINE{...」を出力します。しかし、上記のifステートメントの@"\n"を@"}\ n"に変更しても、何も得られません。

4

1 に答える 1

2

使ってみませんか- (NSArray *)componentsSeparatedByString:(NSString *)separator?の区切り文字を@"\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ライブラリに渡すだけです。観察している問題の原因となっている「}」の後に、末尾のスペースが簡単に存在する可能性があります。

于 2010-06-11T01:28:49.920 に答える