Я разбираю JSON
в своем коде. Но я получаю некоторые неожиданные проблемы при получении данных проанализированного JSON
. Итак, позвольте мне объяснить мою проблему.
Мне нужно проанализировать следующие данные JSON
с помощью xcode. Вот как выглядят данные для анализа, когда я нажимаю тот же URL-адрес в браузере:
{
"RESPONSE":[
{"id":"20",
"username":"john",
"email":"[email protected]",
"phone":"1234567890",
"location":"31.000,71.000"}],
"STATUS":"OK",
"MESSAGE":"Here will be message"
}
Мой код для доступа к этим данным JSON
выглядит следующим образом:
NSData *data = [NSData dataWithContentsOfURL:finalurl];
NSError *error;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
Если я печатаю объект json
, используя NSLog
, то есть NSLog(@"json: %@", [json description]);
, это выглядит так:
json: {
MESSAGE = "Here will be message";
RESPONSE =(
{
email = "[email protected]";
id = 20;
location = "31.000,71.000";
phone = 1234567890;
username = john;
}
);
STATUS = OK;
}
Итак, здесь я заметил две вещи:
Последовательность ключей (или узлов) (
MESSAGE
,RESPONSE
иSTATUS
) изменена по сравнению с веб-ответом выше.RESPONSE
заключается в фигурные скобки'(' & ')'
.
Теперь, если я разделю значения для ключей MESSAGE
& STATUS
и NsLog
их, тогда они будут напечатаны как правильная строка.
Нравится msgStr:Here will be message
и Status:OK
Но если я отделяю значение для RESPONSE
как словарь и снова разделяю вложенные значения этого словаря, такие как email
и username
, то я не могу получить их как строку.
Вот код, который я написал:
NSMutableDictionary *response = [json valueForKey:@"RESPONSE"];
NSString *username = [response valueForKey:@"username"];
NSString *emailId = [response valueForKey:@"email"];
Если я печатаю username
и emailId
, то они не печатаются как обычная строка, а выводятся как:
username:(
john
)
email:(
[email protected]
)
Итак, мой вопрос: почему это не выглядит как обычная строка? Если бы я попытался использовать эти переменные дальше, они бы показали значение, заключенное в фигурные скобки '(' & ')'
. Это происходит из-за NSJSONSerialization
?