2013-03-28 5 views
1

Я пытаюсь deserilaize следующего в NSDictionary с использованием как JSONKit и Apple, встроенные в JSon serlializerJSONKit не десериализации недвижимость без кавычек

{route:"/tasks/4f9218a27e5c8f0000000000"} 

почему он не в состоянии

NSDictionary *jsonDictionary = [[JSON valueForKeyPath:@"data"] objectFromJSONString]; 

Это делает однако похоже, работают, если у меня есть цитаты вокруг «маршрута», почему? Я бы просто поместил цитаты вокруг имени свойства, но facebook удаляет его, когда я отправляю исходную строку, так что это невозможно.

ответ

0

Причина в том, что {"ключ": "значение"} является правильным способом кодирования строки JSON. строки {key: "value"}, которые вы видите в приложениях, обычно являются фактором удобства определения строки, поскольку до того, как этот тип структурированной строки проталкивается через HTTP, он переводится (за кулисами) в ключ {" ":" value "}.

В будущем, если у вас возникли проблемы с строкой JSON, и они обеспокоены тем, что это может быть из-за неправильного форматирования строки JSON, попробуйте вставить строку JSON в JSONlint (http://jsonlint.com/).

Если вы идете туда и попробовать эту строку, вы увидите, что она не в состоянии: {ключ: «значение»} Если попробовать это вместо этого, он будет проходить: { «ключ»: «значение»}

Надеется, что это помогает ....

EDIT Вау ... Угадайте, что это помогло бы, если бы я на самом деле читать то, что я писал. Дело в том, что выше, но у меня, должно быть, был мозговой пердит, потому что его трудно расшифровать. Итак, вот вторая попытка в этом ха ..

Причина ваш первый пример терпит неудачу, потому что эта его структура не действует в соответствии со стандартами JSON:

{route:"/tasks/4f9218a27e5c8f0000000000"} // This is invalid... 

Правильный ключ/значение пары, действительный имеет как ключ и значение в двойные кавычки:

{ "route" : "/tasks/4f9218a27e5c8f0000000000" } // This IS valid. 

стандарты для определения JSON строки можно увидеть здесь: http://www.json.org/

Сайт JSONLint (http://jsonlint.com) - очень хороший ресурс для быстрой проверки правильности вашей строки JSON до ее использования в реальном мире, а также отличный способ отладить строку JSON, которая может вызывать проверку проверки парсера.

Надеюсь, это помогает heh ..