2012-01-04 5 views
0

JSONデータを含むNSStringがあり、指定されたKEYのVALUEを取得する必要がありましたが、そのキーのRAW JSON文字列を読み取る必要があった場合、どのようにしますか?JSONの 'Key'の 'Value'を取得しますが、元の文字列は保持しますか?

VALUEにはいくつかの辞書と配列があり、署名を計算するために生の文字列が必要だったとします。

これを行うことができるものはありますか? JSONKitはこの機能を提供しません。私はこの機能のためだけにカスタムパーサを書くのは避けたいと思います。

答えて

1

実際、JSONKitはあなたのニーズを満たすのに非常に適しています。 まず、文字列をNSDataに変換してJSONKitを使用して解析し、必要なキーの値を見つけることができます。最後にJSONKitはNSStringに変換し直すことができます。 Thinkgがある...私はの署名を生成する必要があるため

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"} 
+0

いくつかのコードは、ここに詳細を示し役立つことを願っています:

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); 

、出力は次のようになりますJSONKitの出力とバックエンドの応答の最小の差であるバックエンド応答は、ハッシュを一致させません。 これは、部分文字列を見つけて角括弧を数えるのではなく、もっと洗練されたソリューションがあるのだろうかと思っていた理由です。 返信いただきありがとうございます。 –

関連する問題