ios - 如何向nsdictionary键添加引号?

  显示原文与译文双语对照的内容

我需要向control_text值添加双引号。 但是,即使反斜杠对字符串起作用,它也不适用于 NSDictionary 值。 是否有办法处理以下情况?


NSDictionary *createText = @{ @"text": @[ @{ @"type": @"control_text", @"text": @"text" }]};

这是我的日志:


{
 text = (
 {
 text = text;
 type ="control_text";
 }
 );
 }

时间: 作者:

NSLog显示的内容:


{
 text = (
 {
 text = text;
 type ="control_text";
 }
 );
 }

当转换为JSON时,将显示为:


{
"text":[
 {
"text":"text",
"type":"control_text"
 }
 ]
 }

假设目标是生成 JSON,那么不需要添加更多的引号。

作者:

一个 NSDictionary 键可以包含引号,它们只需要被转义:


NSDictionary *d = @{@""n"" : @"v"};
NSLog(@"d: %@", d);
NSLog(@"n1: %@", d[@""n""]);
NSLog(@"n2: %@", d[@"n"]);

输出:


d: {
""n"" = v;
}

n1: v

n2: (null)

但是,在一般情况下添加引号是没有意义的。

不要被 NSLog() 混淆,它使用了 description 方法,以便在苹果开发人员喜欢的方式中添加引号和反斜杠。

Swift:


let d1 = ["n" :"v"]//["n":"v"]
let d2 = [""n"" :"v"]//[""n"":"v"]

作者:
...