Obj-C:将对象数组转换为 NSDictionary 以与 JSONRepresentation 一起使用

Posted

技术标签:

【中文标题】Obj-C:将对象数组转换为 NSDictionary 以与 JSONRepresentation 一起使用【英文标题】:Obj-C: Convert an Array of objects into an NSDictionary for use with JSONRepresentation 【发布时间】:2011-08-20 00:22:06 【问题描述】:

我有一个包含各种信息的自定义对象的 NSMutableArray。 例如,该对象可能包含:

firstname
lastname
email

我希望能够将这些对象添加到 NSDictionary,这样我就可以调用 SBJSON 的 'JSONRepresentation' 函数,最终的 JSON 格式如下所示:


    "Users" : [
                "user1First" : "FirstName",
                 "user1Last"  : "LastName",
                 "user1Email" : "Email" ,
                "user2First" : "FirstName",
                 "user2Last"  : "LastName",
                 "user2Email" : "Email" ,
                "user3First" : "FirstName",
                 "user3Last"  : "LastName",
                 "user3Email" : "Email" 
               ]

【问题讨论】:

我认为您应该进一步澄清这个问题。您是否尝试生成许多与“FirstName”等具有相同值的用户?我不太了解,无法提供帮助。 “FirstName”、“LastName”和“Email”是 JSON 值的键。 【参考方案1】:

为每个自定义类编写一个dictionaryRepresentation,以返回该特定对象的字典。然后你可以这样做:

NSMutableArray *dictionaryArray = [NSMutableArray arrayWithCapacity:yourOtherArray.count];
for (id object in yourOtherArray) 
    [dictionaryArray addObject:[object dictionaryRepresentation]];

// not sure what SBJSON's function returns so I'm using id here
id JSONRepresentation = [dictionaryArray JSONRepresentation];

【讨论】:

我会使用id object,而不是NSObject *object。这将阻止警告。 好主意。编辑反映。 dictionaryRepresentation ios6 及以上

以上是关于Obj-C:将对象数组转换为 NSDictionary 以与 JSONRepresentation 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

Obj-C,iOS,如何将基于导航的应用程序转换为基于视图的应用程序?

从具有属性的 NSObject 转换为 NSDictionary 的 Obj-C 简单方法?

Obj-C 到 Swift 的转换(包括 Cocoapods)

日历将事件位置存储到数组对象

将 sizeWithFont 方法转换为 Swift

如何在obj-c中将图像转换为base64 [重复]