在JSON中检索'Key'的'Value',但保留原始字符串?

时间:2012-01-04 04:22:55

标签: ios json

如果你有一个包含JSON数据的NSString,你需要为给定的KEY检索VALUE,但是你需要读取该键的RAW JSON字符串,你会怎么做?

假设VALUE有几个字典和数组,你需要原始字符串来计算签名。

那里有什么可以做到的吗? JSONKit不提供此功能。我想避免为此功能编写自定义解析器。

1 个答案:

答案 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"}