我的模型给了我一个字符串数组作为json,我需要一个对象数组,以便我的api在客户端正常运行。在我的模型中,我将json定义为
def as_json(options={})
super(:only => [:price, :available, :location_id, :beer_id], :methods => [:name, :brewery, :style, :label_url, :description, :id])
end
这是给我回复
{"available":"on","beer_id":1,"created_at":"2013-05-31T16:45:09Z","description":"Good","id":1,"location_id":1,"price":"3.0","size":"16.0","updated_at":"2013-05-31T16:45:09Z"}
显然缺少[ ]
,表明它是一个对象数组。有没有一种简单的方法可以将这个字符串数组转换为一个对象数组?
[{"available":"on","beer_id":1,"created_at":"2013-05-31T16:45:09Z","description":"Good","id":1,"location_id":1,"price":"3.0","size":"16.0","updated_at":"2013-05-31T16:45:09Z"}]
我的ios应用程序崩溃了,因为它认为当前的响应不是NSDictionary类型,因为它是NSString。环顾四周之后,我对rails应用程序的一些更改似乎改变了json响应。我所看到的唯一线索就是当我看到什么在起作用以及什么现在不起作用时缺少括号。
答案 0 :(得分:1)
据我所知,你的响应不是一个字符串数组,它只是一个JSON对象。
如果需要将对象转换为1元素的对象数组,只需将其括在[和]中即可。 :)