【问题标题】:Serialize a custom object as a value using NSJSONSerialization使用 NSJSONSerialization 将自定义对象序列化为值
【发布时间】:2013-01-22 21:25:05
【问题描述】:

所以我的 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];

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

【问题讨论】:

    标签: ios nsjsonserialization


    【解决方案1】:

    也许这可以帮助JLCustomClassDisassembler

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

    【讨论】:

      【解决方案2】:

      要实现这一点,您需要创建自己的具有属性和更多属性的自定义 NSObject 类,并且仍然有一个自定义方法来序列化对象,类似于 toString 在 java 上的工作方式,在 Objective-C 上您需要实现

      - (NSString *)description
      

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

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

      Get an object properties list in Objective-C

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        • 2012-01-19
        • 2022-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多