我有一个自定义对象列表。自定义对象中的每个属性都是String
类型。我有一个问题,将该对象列表转换为JSON字符串,以便我可以将其发送到Web服务:
var bytes = NSJSONSerialization.dataWithJSONObject(data, options: NSJSONWritingOptions.allZeros, error: nil)
var jsonObj = NSJSONSerialization.JSONObjectWithData(bytes!, options: nil, error: nil) as! [Dictionary<String, String>]
data
是一个对象列表。这应该是简单的事情,我列出两天。
答案 0 :(得分:3)
正如Apple doc
中所述可以转换为JSON的对象必须具有以下属性:
顶级对象是NSArray或NSDictionary。
所有对象都是NSString,NSNumber,NSArray,NSDictionary或NSNull的实例。
所有字典键都是NSString的实例。
数字不是NaN或无穷大。
因此,您无法使用具有String属性的自定义对象。改为使用对象的字典表示。
更新: 我可以在Objective-C中给你一个例子:
给出一个简单的Person对象:
@interface Person : NSObject
@property (copy, nonatomic) NSString *name;
@property (copy, nonatomic) NSString *surname;
@property (copy, nonatomic) NSString *age;
@end
您可以创建一个获取字典的方法:
-(NSDictionary *) dictionaryRepresentation {
return @{@"name":self.name,
@"surname":self.surname,
@"age":self.age};
}
它可以放在一个类别中或直接放在类中。