iOS7 是不是有轻量级 JSON 到对象映射器(不是 RestKit 或 NSJSONSerialization)?
Posted
技术标签:
【中文标题】iOS7 是不是有轻量级 JSON 到对象映射器(不是 RestKit 或 NSJSONSerialization)?【英文标题】:iOS7 is there a lightweight JSON to Object mapper, (NOT RestKit or NSJSONSerialization)?iOS7 是否有轻量级 JSON 到对象映射器(不是 RestKit 或 NSJSONSerialization)? 【发布时间】:2014-08-18 15:24:22 【问题描述】:我当前的项目使用 AFNetworking 2.2,并且在我添加 Restkit 时通常拒绝编译。 有没有办法让我从其他一些轻量级库中获得如下定义的 RKObjectMapping 等价物?我说的是采用 JSON 并将其转换为自定义值对象,而不仅仅是字典或数组.
我想到了适用于 android 的 Google GSON,ios 有类似的东西吗?
我想要完成什么:
static RKObjectMapping* mapping = nil;
+(RKObjectMapping*)objectMapping
if(mapping != nil)
return mapping;
//allows automatic unpacking of JSON payloads into Value Objects
//https://github.com/RestKit/RestKit/wiki/Object-Mapping
//JSON - VO
mapping = [RKObjectMapping mappingForClass:[MyVO class]];
[mapping addAttributeMappingsFromDictionary:@
@"label": @"label",
@"icon": @"iconName",
@"action": @"actionName",
@"children": @"children"
];
return mapping;
【问题讨论】:
使用 NSJSONSerialization 生成一个 NSDictionary,然后为你的类编写一个initWithDict:
方法。为您提供完全的控制权,而且并不比为最微不足道的情况进行“自动”对象映射更困难。
这可能有用***.com/questions/25213707/…
这是我目前正在使用的,但希望有一些东西可以让这更简单。
我为此付出了很多努力,这是最简单的方法。调用与您的 json 匹配,然后调用它。如果您想在运行时扩展该类,您可以在 json ***.com/questions/7819092/… 中添加具有匹配新键的属性
【参考方案1】:
您是否尝试过 NSJsonSerialization (https://developer.apple.com/library/ios/documentation/foundation/reference/nsjsonserialization_class/Reference/Reference.html)?它似乎完成了你所需要的。每当我需要解析 JSON 格式的任何内容时,我都会使用它,
【讨论】:
问题明确指出不是 NSJsonSerialization。 除非我弄错了......而且是盲目的,我发布这个答案很久之后标题就被改变了 在这种情况下,我很抱歉。您努力发布答案,非常感谢。【参考方案2】:-(id) initWithDictionary:(NSDictionary*) dict
id self = [super init];
if (id)
self.label = dict[@"label"];
self.icon = dict[@"iconName"];
self.action = dict[@"actionName"];
self.children = dict[@"children"];
return id;
【讨论】:
以上是关于iOS7 是不是有轻量级 JSON 到对象映射器(不是 RestKit 或 NSJSONSerialization)?的主要内容,如果未能解决你的问题,请参考以下文章