我有一个PHP服务,它以NSData格式返回以下响应。使用:
将其转换为NSString后NSString *html = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
我得到以下内容:
[
{
"Emp_Name": "Krishna Mamidi",
"Emp_Designation": "Driver",
"Emp_Type": "Permanent",
"Joining_Date": "05-MAR-2011",
"Salary": 10000
},
{
"Emp_Name": "Aditya Reddy",
"Emp_Designation": "supervisor",
"Emp_Type": "Permanent",
"Joining_Date": "06-MAR-2011",
"Salary": 9000
},
{
"Emp_Name": "Rajiv krishna",
"Emp_Designation": "director",
"Emp_Type": "Permanent",
"Joining_Date": "01-MAR-2011",
"Salary": 100000
}
]
以上是正确的JSON格式。
收到上述NSData格式后,我使用以下内容将其转换为JSON字典:
NSError *error = nil;
id jsonObject = [NSJSONSerialization
JSONObjectWithData:data
options:NSJSONWritingPrettyPrinted error:&error];
NSDictionary *deserializedDictionary = nil;
if (jsonObject != nil && error == nil)
{
if ([jsonObject isKindOfClass:[NSDictionary class]])
{
//Convert the NSData to NSDictionary in this final step
deserializedDictionary = (NSDictionary *)jsonObject;
}
}
但是“deserializedDictionary”始终为null或空。基本上它从未进入上面的If循环。
我一直试图弄清楚这一点,但我无法做到。请帮忙
答案 0 :(得分:3)
您的json对象是使用NSArray
而不是NSDictionary
的数组尝试。
答案 1 :(得分:0)
因为返回的JSON是数组,而不是字典。尝试:
NSLog(@"%@", NSStringFromClass([jsonObject class]));