将NSData格式的JSON数据转换为NSDictionary

3

我有一个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”始终为空或空白。基本上,它从未进入上面的If循环。
我一直在试图解决这个问题,但一直没有成功。请帮忙。

字典数组... - Anoop Vaidya
2个回答

3

您的 JSON 对象是一个数组,请尝试使用 NSArray 而不是 NSDictionary


1
简直不敢相信答案如此简单。谢谢你的帮助 :-) - Vishal Aggarwal

0

因为返回的 JSON 是一个数组,而不是字典。请尝试:

NSLog(@"%@", NSStringFromClass([jsonObject class]));

是的,我使用了数组而不是字典,并解决了这个问题。感谢您的帮助。 - Vishal Aggarwal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接