替换JSON NSString中的换行符

时间:2011-06-19 22:18:02

标签: objective-c json nsstring

我正撞在墙上,决定和你们一起办理入住手续。

我将以下JSON数据作为NSString:

{
    "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": " "
}

我需要删除* test和* newline之间的/ n或者用// n编码。我已经尝试了所有我能想到的东西,无法取代字符串。

到目前为止,我已经尝试过:

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

似乎由于某种原因,JSON的格式化正在绊倒NSString方法。我更有可能做一些愚蠢的事。

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

-stringByTrimmingCharactersInSet:仅删除发送到的字符串头部和尾部的字符。它修剪,不搜索和替换。

答案 1 :(得分:0)

在这种情况下,\ n不会在每个逗号后引用换行符吗?

您可能希望替换\\ n(文字字符而不是换行符)

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

答案 2 :(得分: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作为新行打印。在第二个日志中,您有\\n打印为\n,因为转义字符\已转义,因此只是打印出来。