从Objective C中返回的JSON中检索某些键

时间:2014-03-07 06:30:52

标签: objective-c json

我正在向我的服务器发送JSON encoded POST类型,该服务器在PHP中读取已发送的信息并在那里对其进行解码。现在,当我对其进行重新编码并将其发送回来时,它可以完美地工作,我可以NSLog回复,但我的问题是如何获得响应的特定部分?

以下是一个示例回复:

 responseString: {"status":"ok","code":0,"original request":{"username":"test"
`,"password":"test"}}`

建议,想法?

2 个答案:

答案 0 :(得分:1)

您收到的内容实际上是'对象词典'。您可以按如下方式分隔上述代码中的数据:

首先,使用JSON序列化序列化响应数据,如下所示:

NSError* error;
NSDictionary* responseDictionary = [NSJSONSerialization JSONObjectWithData:returnData options:nil error:&error];

然后您可以根据需要分离字典。
例如,如果要检索“status”的值,您可以使用:

NSString *status = [responseDictionary objectForKey:@"status"];

或者,如果您要检索“原始请求”这是另一个字典,您可以使用:

NSDictionary *originalRequest = [responseDictionary objectForKey:@"original request"];

希望这有帮助!

答案 1 :(得分:0)

从服务器收到的响应是JSON数据。 这是一个关于iOS的JSON解析的优秀教程,有很多教程和如果你浏览文档。

http://www.raywenderlich.com/5492/working-with-json-in-ios-5

在JSON中,“{}”表示字典,“[]”表示数组。所以,试试这个

NSDictionary* originalRequest = [responseString objectForKey:@"original request"]; 

你可以像这样进一步挖掘,

NSString* username = [originalRequest objectForKey:@"username"]; 

我强烈建议您阅读一些关于JSON的教程。