次の 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」文字が含まれています。