44

如果我有一个 NSString 并且我想使用 NSJSONSerialization,是否有可能?我该怎么做呢?

4

4 回答 4

92

首先,您需要NSString通过NSData执行以下操作将您的转换为

NSData *data = [stringData dataUsingEncoding:NSUTF8StringEncoding];

然后只需使用该JSONObjectWithData方法将其转换为 JSON

id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
于 2012-01-14T01:07:01.770 回答
12

您需要将您的转换NSStringNSData,此时您可以使用该+[NSJSONSerialization JSONObjectWithData:options:error:]方法。

NSString * jsonString = YOUR_STRING;
NSData * data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError * error = nil;
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
if (!json) {
    // handle error
}
于 2012-01-14T00:07:04.163 回答
1

您可以通过以下方式将字符串转换为 NSData:

NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];

然后,您可以将其与NSJSONSerialization. 但是请注意,这NSJSONSerialization仅适用于 iOS5,因此您最好使用 TouchJSON 或 JSONKit 之类的库,它们都可以让您直接使用字符串,从而节省了转换为 NSData 的步骤。

于 2012-01-14T00:06:39.493 回答
0

我写了一篇博文,演示了如何将原生 iOS JSON 类与使用原生 iOS JSON 类的实现一起包装在通用协议中。

这种方法使使用本机功能变得更加容易,并减少了您必须编写的代码量。此外,如果原生实现被证明是不够的,它可以更容易地使用 JSONKit 切换原生实现。

http://danielsaidi.com/blog/2012/07/04/json-in-ios

博客文章包含您需要的所有代码。只需复制/粘贴 :)

希望能帮助到你!

于 2012-07-04T21:21:29.543 回答