在我的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用作“根对象”。如果要将其包装在另一个字典中,则需要明确地这样做。