我正在构建一个iOS应用程序,并且我正在使用JSONv0.20来映射RestKit文件。JSON文件结构如下:
{
"artists":{
"@total":"100",
"@page":"1",
"@itemsPerPage":"30",
"artist":[
{
"@sortName":"Ai Phoenix",
"@name":"Ai Phoenix",
"@mbid":"ffb0ac71-a438-4fce-91a5-58041aba0135",
"url":"http:\/\/www.setlist.fm\/setlists\/ai-phoenix-13d78159.html"
},
{
"@sortName":"Phoenix",
"@name":"Phoenix",
"@mbid":"02f4c1ff-65e0-4412-8e8b-6239b0faecb5",
"url":"http:\/\/www.setlist.fm\/setlists\/phoenix-53d653f9.html"
}
]
}
我不知道如何映射这些前缀为"@“(@sortname,@name,@mbid)的属性。我尝试将其映射为普通字段(@"@name",@"@mbid",...)但它失败了。另一方面,@"url“对于"url”字段工作得很好。我已经搜索过了,我得到的结果是,这个符号是由一个名为Badgerfish的XML文件翻译而来的。
我这可能会有所帮助,我已经得到了这个JSON文件的对应XML:
<artists total="100" page="1" itemsPerPage="30">
<artist sortName="Ai Phoenix" name="Ai Phoenix" mbid="ffb0ac71-a438-4fce-91a5- 58041aba0135">
<url>
http://www.setlist.fm/setlists/ai-phoenix-13d78159.html
</url>
</artist>
如果有人能帮我,我将不胜感激。谢谢大家!
发布于 2013-04-08 00:52:40
这是RestKit的known limitation。
引用框架作者自己的话:
这是一个已知的限制,也是RestKit依赖Cocoa的键值编码系统进行属性访问的结果。“@”前缀是为命名键值集合运算符而保留的。
您需要更改该JSON格式才能有效地使用RestKit
发布于 2013-04-08 00:44:06
据我所知,RESTKit使用KVC,而@是由KVC使用的,所以不能在JSON键名称中使用它。尝试检查是否可以将@前缀更改为其他名称,例如"m_“。
发布于 2013-09-05 17:14:12
如果您没有使用键路径进行映射,另一种选择可能是创建一个私有的RestKit分支,并使用objectForKey: and relatives代替valueForKey:。在iOS应用程序中,无论如何您都必须提供自己的RestKit副本。(为我的简单应用程序做了这件事,到目前为止它是有效的)
https://stackoverflow.com/questions/15864374
复制相似问题