2011-06-19 26 views
2

私は壁に頭を叩き、皆さんとチェックインすることにしました。JSON NSStringの改行文字を置き換えます。

私はNSStringのように、次のJSONデータを持っている:

{ 
    "PATIENTID": "51853", 
    "MSWREFERRAL": " ", 
    "TIMEIN": " ", 
    "PRECAUTIONOTHERNOTE1": " ", 
    "AGE": "70", 
    "SAFETY2": " ", 
    "VISITTYPE": " ", 
    "RAMP": " ", 
    "BANNISTER": " ", 
    "CREATETIMESTAMP": "1308519326", 
    "SAFETY1": " ", 
    "AGENCYNAME": "RESPONSE HOME CARE", 
    "STAIRS": " ", 
    "AGENCYID": "415", 
    "GUID": "845A481E-8F54-4737-9F55-05FD10E3B931", 
    "ASSIST": " ", 
    "EVALDATE": "06/19/2011", 
    "PULMONARY": "NO", 
    "DOB": "01/17/1941", 
    "GENDER": " ", 
    "STATUS": "pending", 
    "SETTING": " ", 
    "CATHETER": "NO", 
    "PRECAUTIONOTHER1": "NO", 
    "RECENTEVENTS": "*test\n*newline", 
    "PTTIME": "", 
    "TYPE": "eval", 
    "PATIENTNAME": "Gloria Gordon", 
    "CARDIAC": "NO", 
    "PRECAUTION": "NO", 
    "VISITNUM": "1", 
    "PRECAUTIONOTHERNOTE2": " ", 
    "SHUNT": "NO", 
    "WB": "NO", 
    "FALL": "NO", 
    "PRECAUTIONOTHER2": "NO", 
    "LIVES": " ", 
    "THERAPIST": "Bernard George KATZ, PT", 
    "PAID": " ", 
    "PASTMEDHX": " " 
} 

私は*テストと*改行の間/ Nを削除するか、// n個でそれをコード化するためにどちらかが必要です。私は考えることができるすべてを試して、文字列を置き換えることはできません。

は、これまで私が試してみました:

  • replaceOccurrencesOfString:@"\n" withString:@""
  • stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet

それが何らかの理由で、JSONのformmatingは、NSStringのメソッドをトリップされるように思えます。おそらく私は何か愚かなことをやっているでしょう。

ご協力いただきありがとうございます。

+3

フォワードスラッシュとバックスラッシュの違いを理解していることを確認してください。また、あなたが行ったように質問することを意味しますか? –

+0

これは愚かなタイプミスです。私は\ n not/nを置き換えようとしています。 –

+0

...私はGloria Gordonがテストの人であることを願っています... –

答えて

0

-stringByTrimmingCharactersInSet:は、送信先の文字列の先頭と末尾の文字のみを削除します。トリムすると、検索や置換はしません。

0

この場合、\ nは各コンマの後で改行を参照しませんか?

あなたが(代わりに改行のリテラル文字)を交換\\ n個の代わりにすることもできます

replaceOccurrencesOfString:@"\\n" withString:@"" 
0

それはあなたの問題が何であるかを確実に知ることは難しいが、私はあなたの文字列をしたいと思います: "*test\n*newline"を入力して"*test\\n*newline"に置き換えて、\という文字がJSONパーサーに受け入れられるようにしますか?これを行うために

:このから

NSString *str = @"*test\n*newline"; 
NSLog(@"First log %@",str); 
str = [str stringByReplacingOccurrencesOfString:@"\n" withString:@"\\n"]; 
NSLog(@"Second log %@",str); 

出力は、ここで

First log = *test 
*newline 
Second log = *test\n*newline 

を次のようにあなたが最初のログに新しい行として印刷され\nを持っていることがわかりますです。 2番目のログには\\nがあり、\nというエスケープ文字として出力されます。\はエスケープされているため、印刷されます。

関連する問題