首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用RestKit在iOS中解析JSON失败

使用RestKit在iOS中解析JSON失败
EN

Stack Overflow用户
提问于 2013-04-07 23:53:42
回答 3查看 366关注 0票数 1

我正在构建一个iOS应用程序,并且我正在使用JSONv0.20来映射RestKit文件。JSON文件结构如下:

代码语言:javascript
运行
复制
{
 "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:

代码语言:javascript
运行
复制
<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>

如果有人能帮我,我将不胜感激。谢谢大家!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-08 00:52:40

这是RestKit的known limitation

引用框架作者自己的话:

这是一个已知的限制,也是RestKit依赖Cocoa的键值编码系统进行属性访问的结果。“@”前缀是为命名键值集合运算符而保留的。

您需要更改该JSON格式才能有效地使用RestKit

票数 2
EN

Stack Overflow用户

发布于 2013-04-08 00:44:06

据我所知,RESTKit使用KVC,而@是由KVC使用的,所以不能在JSON键名称中使用它。尝试检查是否可以将@前缀更改为其他名称,例如"m_“。

票数 0
EN

Stack Overflow用户

发布于 2013-09-05 17:14:12

如果您没有使用键路径进行映射,另一种选择可能是创建一个私有的RestKit分支,并使用objectForKey: and relatives代替valueForKey:。在iOS应用程序中,无论如何您都必须提供自己的RestKit副本。(为我的简单应用程序做了这件事,到目前为止它是有效的)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15864374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档