Ios 检索';价值';对于';键';在JSON中,但保留原始字符串?

Ios 检索';价值';对于';键';在JSON中,但保留原始字符串?,ios,json,Ios,Json,如果您有一个包含JSON数据的NSString,并且需要检索给定键的值,但需要读取该键的原始JSON字符串,那么您将如何做 假设该值有多个字典和数组,您需要原始字符串来计算签名 有什么东西可以做到这一点吗?JSONKit不提供此功能。我不想只为这个特性编写自定义解析器。实际上,JSONKit非常适合满足您的需求。 首先,您应该将字符串转换为NSData以使用JSONKit对其进行解析,然后您可以找到所需密钥的值,最后JSONKit可以将其转换回NSString 一些代码将在此处显示更多详细信息,

如果您有一个包含JSON数据的NSString,并且需要检索给定键的值,但需要读取该键的原始JSON字符串,那么您将如何做

假设该值有多个字典和数组,您需要原始字符串来计算签名


有什么东西可以做到这一点吗?JSONKit不提供此功能。我不想只为这个特性编写自定义解析器。

实际上,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"}

我想是。。。由于我需要生成后端响应的签名,JSONKit输出和后端响应之间的最小差异将导致哈希不匹配。这就是为什么我想知道是否有一个更优雅的解决方案,而不是找到一个子字符串,并计算括号!。谢谢你的回复!!