2012-03-18 102 views
2

我有這樣的JSON響應字符串:獲取值 - 目標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

看起來你做到了。你還需要什麼? – 2012-03-18 21:34:08

回答

2

這JSON應導致字典

NSDictionary *jsonDict = [responseString JSONValue]; 

然後使用:

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

您好我已經添加了NSString * userName = [result objectForKey:@「Nombre」];但是我的「變量不是此時的CFString」值。你是爲什麼呢?謝謝你的幫助。 – roof 2012-03-19 01:00:17

+0

對不起,但是,...我沒有任何JSONValue類。有人可以建議我如何獲得這門課程嗎? – sensorario 2012-12-13 08:29:21

+0

@SimoneDemoGentili查看cortez的回答。 OP使用第三方工具,iOS 5+不需要。 – vikingosegundo 2012-12-13 12:12:07

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 2012-03-19 04:25:13