我正在尝试将NSMutableDictionary
转换为NSString
。但它在我的字符串中插入“\”。我使用以下代码将NSMutableDictionary
转换为NSString
。
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:inspectionJson options:0 error:nil];
NSLog(@"ns data is %@",jsonData);
NSString *json = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSDictionary *dict = @{@"final":json};
下面,
NSMutableDictionary *inspectionJson = {"name":"abc","profession":"IT","images":()}
它为我输出
dict = {final = "{\"name\":\"abc\",\"profession\":\"IT\",\"images\":[]}";}
我需要的输出是
{final = "{"name":"abc","profession":"IT","images":[]}";}
如何获得所需的输出?请帮忙。
提前致谢。
答案 0 :(得分:2)
NSDictionary *inspectionJson = @{@"name":@"abc",@"profession":@"IT",@"images":@[]};
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:inspectionJson options:0 error:nil];
NSLog(@"ns data is %@",jsonData);
NSString *json = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"json string:%@", json);
NSDictionary *dict = @{@"final":json};
如果运行此代码,您可以在控制台中看到实际的json。
请为编程而不要将鼠标悬停在json
变量上,并期望字符串不转义字符串中的特殊字符。
让我再解释一下你。假设你有一个字符串
NSString *s1 = @"Make said, he is going to Paris";
突然间你发现嘿我错过了双引号,所以你改变了下面的陈述。
NSString *s1 = @"Mike said, "he is going to Paris"";
但突然编译器将错误抛到了你的脸上,“嘿,你不能这样做!”
这是因为"
用于定义字符串,你不能在同一个字符串中使用引号,就像嵌套的注释/* /* */ */
那你会怎么做?这是你的救世主Escape Sequence,它允许你使用字符串中的特殊字符。
所以这是最后一个字符串
NSString *s1 = @"Mike said, \"he is going to Paris\"";
答案 1 :(得分:0)
"
需要在字符串中转义,当使用它(/
)时不会出现。
您可以使用此代码进行测试:
NSLog(@"%@",dict[@"final"]);
答案 2 :(得分:-1)
你可以用两种方式
NSString * dict = [NSString stringWithFormat:@“%@”,aDictionary];
或
您可以使用description
NSMutableDictionary
方法
希望它有所帮助。