2012-03-18 22 views
2

私は、このJSONレスポンス文字列があります。このコードでJSON文字列から値を取得する - Objective Cの

{"d":"{\"ID_usuario\":\"000130\",\"Nombre\":null,\"Vipxlo\":0,\"Provmun\":null,\"Descuentos\":null,\"Listaviplocal\":null}"}` 

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    //Check valid signal 

    connection = nil; 

    NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 
    //data =nil; 

    NSArray *jsonArray = [responseString JSONValue]; 

私はそれをどのように行うことができますか?

+0

あなたはそれをやったように見えます。他に何か要りますか? –

答えて

2

このJSON辞書に

NSDictionary *jsonDict = [responseString JSONValue]; 

をもたらすべきで、その後使用します。

[jsonDict objectForKey:@"d"]; 
+0

こんにちは私はNSStringを追加しました* userName = [resultObjectForKey:@ "Nombre"];私は "変数は、この時点でCFStringではありません"というuserNameの値を持っています。それはなぜですか?ご協力いただきありがとうございます。 – roof

+0

申し訳ありませんが、...私はJSONValueクラスを持っていません。誰かがこのクラスを取得する方法を私に示唆することはできますか? – sensorario

+0

@SimoneDemoGentiliコルテスの答えを参照してください。 OPはサードパーティのツールを使用しています。これはiOS 5以降では必要ありません。 – vikingosegundo

1

iOS用のSBJasonParserライブラリをお試しください。

あなたはその後、(すべてのiOSバージョンの)このコードを使用することができます

SBJsonParser* parser = [[[SBJsonParser alloc] init] autorelease]; 
NSDictionary* myDict = [parser objectWithString: responseString]; 

注:上記のコードは、JSON辞書を持っていますが、配列としてアクセスしようとしていました。

10

iOS 5が必要な場合は、NSJSONSerializationを試してください。

あなたのコードはこのように見えるかもしれませんが、まずはドキュメントを読むことをお勧めします。

NSArray* jsonArray = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:someError] 
+0

NSJsonSerializattionは、他のフレームワークと比較して最適かつ最適化されたソリューションです。[ここ](http://blog.skulptstudio.com/nsjsonserialization-vs-sbjson-performance)私はSBJsonとNSJSONSerialization (ios5.0のリリース以前はSBJSONはJsonオブジェクトを処理するための良いフレームワークです)。 – iDroid

関連する問題