Как преобразовать 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
Надеюсь, поможет.