如何只转义未转义的引号 Objective C

How to escape only unescaped quotation marks Objective C

我收到 JSON 回复,我需要转义引号。 这是我得到的字符串:

"sign":0,"text":"Continue onto William Elton \"Brownie\" Brown Freeway, I 580"

现在,我需要让字符串看起来像这样:

\"sign\":0,\"text\":\"Continue onto William Elton \"Brownie\" Brown Freeway, I 580\"

但是,当我调用这个方法时

sectionString = [sectionString stringByReplacingOccurrencesOfString:@"\"" withString:@"\\""];

我得到的是:

\"sign\":0,\"text\":\"Continue onto William Elton **\"Brownie\"** Brown Freeway, I 580\"

所以问题出在粗体部分,Brownie,在我开始替换它们之前已经有了引号。我该如何解决这个问题,并且只转义 " 而不是 \"?

要执行您要求的操作,请先取消转义转义引号:

用stringByReplacingOccurrencesOfString把所有的\"改成"

sectionString = [sectionString stringByReplacingOccurrencesOfString:@"\\"" withString:@"\""];

然后用stringByReplacingOccurrencesOfString把所有的"改成\"

sectionString = [sectionString stringByReplacingOccurrencesOfString:@"\"" withString:@"\\""];