有什么办法来解决一个JSON响应

我正在parsing一个错误的JSON。 我在Swift中这样做:

jsonString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true) 

所以,它给出了一个错误。

 Error converting string to object => Optional(Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn't be completed. (Cocoa error 3840.)" (Badly formed object around character 11396.) UserInfo=0x14512990 {NSDebugDescription=Badly formed object around character 11396.}) 

现在,反应是一个巨大的,所以我只发布它的错误部分:

 { "data" : { "operator_settings" : { "profileSettings" : "{"visible":["firstname","lastname","phonenumber","emailaddress","paddress","paddress2","paddresscity","paddressstateabbreviation","paddresszip","paddresscountry"],"required":["firstname","lastname","emailaddress","paddress","paddresscity","paddresszip"]}" } }, "status" : 200.0, "count" : null } 

另外,我想在parsing它之前做这个回应:

 { "data": { "operator_settings": { "profileSettings": "{\"visible\":[\"firstname\",\"lastname\",\"phonenumber\",\"emailaddress\",\"paddress\",\"paddress2\",\"paddresscity\",\"paddressstateabbreviation\",\"paddresszip\",\"paddresscountry\"],\"required\":[\"firstname\",\"lastname\",\"emailaddress\",\"paddress\",\"paddresscity\",\"paddresszip\"]}" } }, "status": 200, "count": null 

}

但是,我不知道响应的深度。 我无法访问我正在调用的API。 那么,我有办法解决吗?

我有像你的要求。 同样的方式,我需要传递格式的数组值

  "{\n \"UserId\" : \"1\",\n \"CorporateId\" : \"1\",\n \"DataAccessLevel\" : \"1\"\n}" 

所以为此我创build了两个方法:

 + (NSString *) getJSONString:(id)object { NSString *jsonString = @""; @try { NSError *error = nil; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:object options:NSJSONWritingPrettyPrinted error:&error]; if (! jsonData) { NSLog(@"Got an error: %@", error); } else { jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; } return jsonString; } @catch (NSException *exception) { NSLog(@" Exception :%@",exception); return jsonString; } } //--------------------------------------------------------------- + (id) getObjectFromJSONString:(NSString *)jsonString { @try { NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; NSError *error = nil; id object = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error]; return object; } @catch (NSException *exception) { NSLog(@" Exception :%@",exception); return nil; } } 

在这里为profileSettings传递这个对象getJSONString方法,你会得到这种格式。