在我的iPhone应用程序中,我试图使用JSON库(YAJL)创建一个类似于以下格式的JSON字符串:

{"user":
  {"name":"Jon", "username":"jon22", "password":"passw@rd", "email":"[email protected]"}
}


但是我不知道创建这个的YAJL方法。

我尝试了以下方法:

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

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


但是,返回的字符串未包装在外部“用户”中。
如何使用YAJL创建此json字符串?有人对这个有经验么???

非常感谢,
布雷特

最佳答案

我不使用YAJL,但是SBJSON,这也是Apple在iOS中使用的一个...

无论如何,该库的行为正确:您不是在创建“用户”字典!

您需要执行以下操作:

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


然后将其“ JSON化”。

这是因为当您在userDictionary上调用-yajl_JSONString时,您将userDictionary用作“根对象”。如果要将其包装在另一个字典中,则需要明确地这样做。

09-25 21:29