0

我的模型给了我一个字符串数组作为 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 响应。我唯一的线索是当我查看什么工作和现在不工作时缺少的括号。

4

1 回答 1

1

据我所知,您的响应不是字符串数组,它只是一个 JSON 对象。

如果您需要将对象转换为 1 元素对象数组,只需将其括在 [ 和 ] 中即可。:)

于 2013-05-31T18:55:29.577 回答