0
如果您有一個包含JSON數據的NSString,並且您需要檢索給定KEY的VALUE值,但是您需要讀取該鍵的RAW JSON字符串,那麼您將如何執行該操作?在JSON中爲'Key'檢索'Value',但保留原始字符串?
假設VALUE有多個字典和數組,並且您只需要原始字符串來計算簽名。
有沒有什麼可以做到這一點? JSONKit不提供此功能。我想避免爲此功能編寫自定義分析器。
如果您有一個包含JSON數據的NSString,並且您需要檢索給定KEY的VALUE值,但是您需要讀取該鍵的RAW JSON字符串,那麼您將如何執行該操作?在JSON中爲'Key'檢索'Value',但保留原始字符串?
假設VALUE有多個字典和數組,並且您只需要原始字符串來計算簽名。
有沒有什麼可以做到這一點? 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"}
Thinkg是...因爲我需要生成的簽名後端響應,JSONKit輸出與後端響應之間的最小差異將導致哈希不匹配。 這就是爲什麼我想知道是否有更優雅的解決方案,而不是找到一個子字符串,並計算括號! 感謝您的回覆! – 2012-01-04 11:57:28