Как преобразовать NSMutableDictionary в NSString?

Я пытаюсь конвертировать 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 ответа

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, которая позволяет вам использовать специальные символы в вашей строке.

Итак, вот последняя строка

NSString *s1 = @"Mike said, \"he is going to Paris\"";

" нужно уйти в строку, когда ее использовать (/) не появится.

Вы можете использовать этот код для проверки:

NSLog(@"%@",dict[@"final"]);

Вы можете использовать два способа

NSString *dict = [NSString stringWithFormat:@"%@", aDictionary];

или же

ты можешь использовать description метод NSMutableDictionary

Надеюсь, поможет.

Другие вопросы по тегам