2012-03-18 63 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