YAJL - JSON на iOS / iPhone - PullRequest
       10

YAJL - JSON на iOS / iPhone

2 голосов
/ 07 сентября 2011

В своем приложении для iPhone я пытаюсь использовать библиотеку JSON (YAJL) для создания строки JSON, которая выглядит следующим образом:

{"user": 
  {"name":"Jon", "username":"jon22", "password":"passw@rd", "email":"jon22@example.com"}
}

Но я не могу понять методы YAJLчтобы создать это.

Я попробовал следующее:

 NSArray *params = [NSArray arrayWithObjects:@"Jon", @"jon22", @"passw@rd", @"jon22@gmail.com", nil];
 NSArray *keys = [NSArray arrayWithObjects:@"name", @"username", @"password", @"email", nil];

 NSDictionary *userDictionary = [NSDictionary dictionaryWithObjects:params forKeys:keys];
 NSString *JSONString = [userDictionary yajl_JSONString];

Однако возвращаемая строка не переносится во внешний "пользователь". Как я могу использовать YAJL для создания этой строки json? У кого-нибудь есть опыт с этим ???

Большое спасибо, Бретт

Ответы [ 2 ]

1 голос
/ 07 сентября 2011

Я не использую YAJL, но SBJSON , который Apple использует и в iOS ...

В любом случае, библиотека ведет себя правильно: вы не создаетесловарь "user"!

Вам нужно сделать что-то вроде:

NSDictionary *serialize = [NSDictionary dictionaryWithObject:userDictionary forKey:@"user"];

А затем "JSON-ize" вот этот.

Это потому, что когда вы звоните-yajl_JSONString в userDictionary, вы используете userDictionary в качестве «корневого объекта».Если вы хотите обернуть это в другой словарь, вам нужно явно сделать это.

0 голосов
/ 07 сентября 2011

Я настоятельно рекомендую вам проверить JSONKit https://github.com/johnezang/JSONKit Я использовал множество анализаторов JSON и нашел его самым простым.

Также документация потрясающая.

...