我有以下 JSON 数组:
[u'steve@gmail.com']
“u”显然是 unicode 字符,它是由 Python 自动创建的。现在,我想把它带回Objective-C并使用它解码成一个数组:
+(NSMutableArray*)arrayFromJSON:(NSString*)json
{
if(!json) return nil;
NSData *jsonData = [json dataUsingEncoding:NSUTF8StringEncoding];
//I've also tried NSUnicodeStringEncoding here, same thing
NSError *e;
NSMutableArray *result= [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&e];
if (e != nil) {
NSLog(@"Error:%@", e.description);
return nil;
}
return result;
}
但是,我收到一个错误:(Cocoa error 3840.)" (Invalid value around character 1.)
我该如何补救?
编辑:这是我将实体从 Python 带回 Objective-c 的方法:
首先,我将实体转换为字典:
def to_dict(self):
return dict((p, unicode(getattr(self, p))) for p in self.properties()
if getattr(self, p) is not None)
我将此字典添加到列表中,将我的 responseDict['entityList'] 的值设置为此列表,然后self.response.out.write(json.dumps(responseDict))
但是我回来的结果仍然有那个'u'字符。