如何将NSMutableDictionary转换为NSString?

时间:2015-07-22 13:26:58

标签: objective-c json nsstring nsmutabledictionary

我正在尝试将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":[]}";}

如何获得所需的输出?请帮忙。

提前致谢。

3 个答案:

答案 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方法

希望它有所帮助。