如何通过在键上动态添加“\”来使用目标 c 在 iPhone 中显示 JSON 响应?

How to show JSON response in iPhone using the objective c by dynamically adding " \" to the keys?

提问人:User1075 提问时间:10/11/2022 更新时间:10/12/2022 访问量:34

问:

我有一个示例代码,可以帮助我打印JSON响应。在这种情况下,我手动在键和值之前添加了 \ 斜杠符号,因此它可以帮助我打印 JSON .代码是:

NSString *jsonString = @"[{\"person\": {\"name\":\"James\",\"age\":\"24\"}},{\"person\": {\"name\":\"ray\",\"age\":\"70\"}}]";

现在的问题是,一旦JSON字符串变长,我就必须在每个键之前手动添加\。

有人可以帮忙如何使用一些循环代码在键前添加“”,如上面的代码所示?

任何帮助将不胜感激。

iOS JSON Objective-C XCode nsstring

评论

0赞 Cy-4AH 10/11/2022
将 “ 替换为 \”
0赞 User1075 10/11/2022
@Cy-4AH 你能帮忙写示例代码吗?
0赞 Cy-4AH 10/11/2022
哪个示例代码?您只需要对手动键入到源文件中的静态字符串执行此操作。
0赞 User1075 10/11/2022
@Cy-4AH 我的意思是我不能直接将 json 字符串添加到静态字符串中,因为它会在目标 C 中出现错误。在分配字符串之前,我需要为每个键值添加 \
1赞 DonMag 10/12/2022
@User1075 - 不清楚你在问什么......你是否在源代码中输入它?或者,您是否从某个地方接收了一些 json 数据,并且想要将其添加到调试控制台(或将其设置为标签文本)进行打印?.m

答:

0赞 DonMag 10/12/2022 #1

真的不清楚你想做什么 - 但也许这会起作用......

用:

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target 
                                        withString:(NSString *)replacement;

将是 ,你需要像这样转义它:target"

@"\""

将 ,像这样转义:replacement\"

@"\\\""

所以,这个:

NSString *jsonString = @"[{\"person\": {\"name\":\"James\",\"age\":\"24\"}},{\"person\": {\"name\":\"ray\",\"age\":\"70\"}}]";
NSLog(@"%@", [jsonString stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""]);

将输出到调试控制台:

2022-10-11 12:35:58.958881-0400 YourProj[6562:7795515] [{\"person\": {\"name\":\"James\",\"age\":\"24\"}},{\"person\": {\"name\":\"ray\",\"age\":\"70\"}}]

从远程接收 json 时,它可能如下所示:

NSData *jsonData = [NSData dataWithContentsOfURL:url];
NSString *js = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"%@", [js stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""]);