Ios 将Json转换为NSDictionary

Ios 将Json转换为NSDictionary,ios,objective-c,iphone,json,nsdictionary,Ios,Objective C,Iphone,Json,Nsdictionary,我正在尝试将序列化的Json字符串转换为NSDictionary,但没有找到将序列化的Json转换为NSDictionary的任何解决方案 这是我的响应字符串 {"id":2,"parent_id":1,"lft":2,"rght":3,"name":"Audio Engineering","images":[{"id":22,"user_id":2,"name":"iStock_000027023404_Small","url":"https:\/\/pbs.twimg.com\/profil

我正在尝试将序列化的
Json
字符串转换为
NSDictionary
,但没有找到将序列化的
Json
转换为
NSDictionary
的任何解决方案

这是我的响应字符串

{"id":2,"parent_id":1,"lft":2,"rght":3,"name":"Audio Engineering","images":[{"id":22,"user_id":2,"name":"iStock_000027023404_Small","url":"https:\/\/pbs.twimg.com\/profile_images\/97601593\/Picture_3_400x400.png","alt":"iStock_000027023404_Small","description":"","thumbnail":"a:3:{i:0;a:4:{s:4:\"name\";s:25:\"iStock_000027023404_Small\";s:5:\"width\";i:30;s:6:\"height\";i:30;s:3:\"url\";s:58:\"\/uploads\/2016\/09\/thumb\/small\/iStock_000027023404_Small.jpg\";}i:1;a:4:{s:4:\"name\";s:25:\"iStock_000027023404_Small\";s:5:\"width\";i:90;s:6:\"height\";i:90;s:3:\"url\";s:59:\"\/uploads\/2016\/09\/thumb\/medium\/iStock_000027023404_Small.jpg\";}i:2;a:4:{s:4:\"name\";s:25:\"iStock_000027023404_Small\";s:5:\"width\";i:230;s:6:\"height\";i:230;s:3:\"url\";s:67:\"\/uploads\/2016\/09\/thumb\/medium_251x230\/iStock_000027023404_Small.jpg\";}}","created":"2016-09-07T06:24:09+00:00","modified":"2016-09-07T06:24:09+00:00","_joinData":{"id":12,"category_id":2,"image_id":22}}]}
我正在尝试将其转换为
NSDictionary
。在这里,key
缩略图的值是我无法解析的序列化数据

我试过了

NSData *data = [[self getJsonnResponse] dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:data
                                                     options:kNilOptions
                                                       error:&error];

if (error)
    NSLog(@"%@",[error description]);
else
    NSLog(@"%@",json);
这让我犯了个错误

Error Domain=nscocaerorrordomain Code=3840“字符291周围的对象格式错误。”UserInfo={NSDebugDescription=字符291周围的对象格式错误。}

字符291表示索引291处的字符。关于JSON响应

你的问题在这里,不是有效的部分

“缩略图”是一个:25:“伊斯托克(IS托克)U 0002702340404小型”s:5:“宽度”5:“宽度”i:30;s:6:“宽度”i:30;s:6:“身高”30;s:6:“高度”i:30;s:6:6:“高度”i:高度”i:30;i:30;s:6:6:“高度”身高”i:i:30;i:30;30;s:30;s:s:s:3:3:3:3:3:“高度”一个网站:3:“高度”i:i:i:30;s:a:3:“url”i:30;s:3:“url”网站:3:“url”网站:s:s:s:s:3:“url”s:s:s:3:“url”s:s:s:s:3”网站网站网站网站:3:3:“url”s:s:3”网站地址:90;s:3:“url”;s:59:\”\/上传\/2016\/09\/thumb\/Middle\/iStock?u Small.jpg\“}i:2;a:4:{s:4:“name”s:25:“iStock?u Small”s:5:“width”i:230;s:6:“height”i:230;s:3:“url”s:67:“\/上传\/2016\/09\/thumb\/Middle:x225130 \/iStock?u Small.jpg\”>


在后端检查一次并询问JSON的清晰格式一次检查JSON对象集是否有效,然后使用以下方法进行解析

 NSData *data = [responseString dataUsingEncoding:NSUTF8StringEncoding];
if([NSJSONSerialization isValidJSONObject:data]) {
    // here parse your json data
}

这一个是错误的
json
formate,我在这里看到的可能是您的web开发人员将日志放入检查
array
dictionary
是否正确生成。 请要求web开发人员解决此问题

您的
缩略图
建议的
JSON
如下所示:

{
    {
        "name": "iStock_000027023404_Small";
        "width": 30;
        "height": 30;
        "url": "/uploads/2016/09/thumb/small/iStock_000027023404_Small.jpg";
    } {
        "name": "iStock_000027023404_Small";
        "width": 90;
        "height": 90;
        "url": "/uploads/2016/09/thumb/medium/iStock_000027023404_Small.jpg";
    } {
        "name": "iStock_000027023404_Small";
        "width": 230;
        "height": 230;
        "url": "/uploads/2016/09/thumb/medium_251x230/iStock_000027023404_Small.jpg";
    }
}

可能会对您有所帮助。

使用下面的代码将json转换为字典

n错误*错误

NSData*data=[jsonString DATAUSINGENCODE:NSUTF8StringEncoding]

NSDictionary*ResponseDect

如果(数据!=nil) {

responseDict=(NSDictionary*)[NSJSONSerialization JSONObjectWithData:data选项:NSJSONReadingMutableContainers错误:&err]

}


return responseDict;

可能重复您可以显示您的代码您的缩略图是字符串,它包含JSON字符串嘿,请检查我的更新问题#Dejan Skledar链接中的问题没有提供我问题的解决方案,因为链接中的问题是将JSON或NSDictionary转换为Swift obj,但我的问题是如何转换上述str正在查找词典并获取缩略图内容。