使用NSJSONSerialization将自定义对象序列化为值

时间:2013-01-22 21:25:06

标签: ios nsjsonserialization

所以我的JSON请求应该类似于:

{ 
   "MyDictionary" : ["some values"], 
   "RegularValue" : "regularValue",
}

所以我目前所做的是:

NSDictionary *myDict = @{@"Blah" : @"1", @"Yadayada" : @"2"}; 
NSDictionary *jsonDict = @{"MyDictionary" : myDict, "RegularValue" : "someValue"};
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict options:kNilOptions error:&error];

所以这很好用。我遇到的问题是,我不想手动创建MyDictionary,而是使用NSObject的自定义sublcass并将其序列化为JSON。我基本上必须为我的自定义NSObject的属性手动创建NSDictionary,并将其放在NSJSONSerialization方法中。但我想知道是否有更好的方法来做到这一点?感谢。

2 个答案:

答案 0 :(得分:0)

也许这可以帮助JLCustomClassDisassembler

它迭代自定义对象以获取属性。这将为您提供字典/数组,然后使用sbjson / jsonkit或者您更喜欢构建json字符串。

答案 1 :(得分:-3)

要实现这一点,你需要创建自己的带有属性的自定义NSObject类,并且仍然有一个自定义方法来序列化对象,类似于toString在java上运行的方式,在Objective-C上你需要实现< / p>

- (NSString *)description

在您的方法上,然后返回序列化对象。

在这个方法上你可以读取当前对象的所有属性,然后以某种方式序列化它们,这个线程提供了一个很好的示例代码来读取某个对象的所有属性

Get an object properties list in Objective-C