如何解决RestKit是唯一具有JSON到Objective-C对象映射的框架吗?
| 我正在寻找一个将JSON转换为Objective-C关系对象的库或框架。 即我需要将包含对象,对象数组和对象字典的JSON映射到我的自定义对象。 就像是:DataObject {
\"user\" : {
\"name\":\"Peter\",\"id\":1234
}
\"place\": \"UK\"
\"job\": {
\"title\" : \"CTO\",\"salary\" : 1234567
}
\"employess\": [
{
\"name\":\"Carlton\",\"id\":1235
},{
\"name\":\"Hugo\",\"id\":12346
}]
}
因此,有一个DataObject,一个UserObject和一个由UserObjects组成的雇员数组。
我希望从JSON到我的DataObject的映射可以“自动”进行,这当然是因为我想描述对象类以及Object类中的关系,并以此完成映射,而不是手动映射每个嵌套对象。
(使用setValue:forKey和其他KVO方法可以轻松完成第一级本机Objective-C属性,但是从那里开始变得很复杂)。
我一直在测试RestKit,但似乎无法从该框架中选择所需的功能,它要么全部,要么全部都不选,我发现它确实满足了我的需求。
有人熟悉图书馆等可以做到这一点吗?
先感谢您。
解决方法
您上面发布的内容不是有效的JSON。如果您将其设为有效的JSON,那么如果没有特定的架构(例如,
{
\"DataObject\": {
\"user\": {
\"name\": \"Peter\",\"id\": 1234
},\"place\": \"UK\",\"job\": {
\"title\": \"CTO\",\"salary\": 1234567
}
}
}
Dataobject是字典还是Object?用户或工作呢? User是NSUser的实例,Job是NSDictionary?
另一方面,如果您具有已知的架构,则:
[
{
\"class\": \"DataObject\",\"properties\": {
\"user\": {
\"class\": \"User\",\"properties\": {
\"name\": \"Peter\",\"id\": 1234
}
},\"job\": {
\"title\": \"CTO\",\"salary\": 1234567
}
}
}
]
您不需要框架,因为一旦有了有效的JSON,就可以轻松地自己映射到对象。伪代码:-
createWithDict(dict) {
var newOb = create new(dict[\"class\"]);
dict.properties.each( val,key ) {
if(val is dictionary && val.hasproperty(\"class\"))
val = createWithDict(val)
newOb[key] = val
}
return newOb;
}
, 要将JSON映射到Objective-C对象,我尝试过RestKit。我之前使用过它,因此我的批评可能不再适用。
我发现的:好主意。插件不太复杂。如果可行,对您来说很好。但是,如果不是这样,或者如果您需要进一步推动它,那么祝您调试顺利。
我为我投入的时间感到遗憾。
我只在寻找JSON到Objective-C对象,而不是相反。
我在SO上找到了指向JTObjectMapping的链接-但找不到原始答案。似乎更轻巧,接近我要搜索的内容,但是我没有机会尝试。
另一个类似的类:jastor。
与RestKit相比,我更喜欢这两个类的方法,因为它只处理一项工作,而RestKit则尝试处理所有事情。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。