0

オブジェクトから文字列への変換にjsonkitを使用しようとしています。私の SerializedClasses ヘルパーは、NSMutableArray CellList を JSONString (ssd ログ) に変換します。これは完全にうまくいきます。次に、結果の文字列を辞書に入れ、jsonstring 辞書 (ssd2 ログ) を取得しようとします。コードと出力は次のとおりです。

    -(NSDictionary*)toDictionary{ 
NSString *myCellListString = [SerializedClassesHelper cellListToString:cellList];
NSLog(@"ssd:%@",myCellListString);

    NSDictionary *myDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                              [[NSString alloc] initWithFormat:@"%@",myCellListString],@"cellList",
                              [[NSString alloc] initWithFormat:@"%d",weaponType],@"weaponType",
                              nil];

for (NSString *eachString in myDictionary) {
    [eachString release];
}
NSLog(@"ssd2:%@",[myDictionary JSONString]);
return myDictionary;
}

出力:

ssd:[{"col":"4","row":"2"},{"col":"4","row":"2"}]
ssd2:{"weaponType":"0","cellList":"[{\"col\":\"4\",\"row\":\"2\"},{\"col\":\"4\",\"row\":\"2\"}]"}

これらすべてのバックラッシュが cellList 文字列の途中に表示されるのはなぜですか?

4

1 に答える 1

1

それらは文字列内に存在するため、引用符をエスケープしています。それらがないと、パーサーに文字列を出入りし続けるように指示し、無効な構文になってしまいます。

于 2012-07-26T16:07:35.023 に答える