如果你有一个包含JSON数据的NSString,你需要为给定的KEY检索VALUE,但是你需要读取该键的RAW JSON字符串,你会怎么做?
假设VALUE有几个字典和数组,你需要原始字符串来计算签名。
那里有什么可以做到的吗? JSONKit不提供此功能。我想避免为此功能编写自定义解析器。
答案 0 :(得分:1)
实际上JSONKit非常适合满足您的需求。 首先你应该将你的字符串转换为NSData以使用JSONKit来解析它,然后你可以找到你想要的键的值,最后JSONKit可以将它转换回NSString。
有些代码会在此处显示更多详细信息,希望对您有所帮助:
NSString *jsonString = @"{\"k\":{\"age\":1,\"desc\":\"something cool\"}}";
NSData *rawData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
id jsonObject = [rawData objectFromJSONData];
NSLog(@"json object is:%@", jsonObject);
id kObject = [jsonObject valueForKey:@"k"];
NSLog(@"the object of key k is: %@", kObject);
NSString *kString = [kObject JSONString];
NSLog(@"raw string of k is: %@", kString);
输出结果如下:
2012-01-04 12:50:41.234 App[1966:207] json object is:{
k = {
age = 1;
desc = "something cool";
};
}
2012-01-04 12:50:41.235 App[1966:207] the object of key k is: {
age = 1;
desc = "something cool";
}
2012-01-04 12:50:41.235 App[1966:207] raw string of k is: {"age":1,"desc":"something cool"}