2

在我的 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 字符串?有人对这个有经验么???

非常感谢,布雷特

4

2 回答 2

1

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

无论如何,图书馆的行为是正确的:你没有创建一个“用户”字典!

您需要执行以下操作:

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

然后“JSON-ize”这个。

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

于 2011-09-06T21:15:49.430 回答
0

我强烈建议您查看 JSONKit https://github.com/johnezang/JSONKit我使用过许多 JSON 解析器,并且发现它是最简单的。

文档也很棒。

于 2011-09-06T22:48:46.690 回答