2013-05-31 128 views
0

我的模型给了我一个字符串数组作为json,并且我需要一个对象数组,以便在客户端正确运行我的api。在我的模型我定义为字符串数组对象阵列

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"} 

这显然是缺少[ ]表明它是对象的数组的JSON。有没有简单的方法将这个字符串数组转换为一个对象数组?

编辑:我的原始响应这是工作的罚款是

[{"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响应。我唯一的线索是当我看着什么在工作,什么现在不起作用时丢失的括号。

+1

你是什么意思的数组对象? JSON本质上是一种将数据存储在字符串中的方式,所以如果您希望能够存储Time对象等,它不会发生。编辑你的问题以包含所需行为的例子,并且给你一个答案会更容易。 – XanderStrike

回答

1

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

如果您需要将对象转换为1元素的对象数组,请将其包含在[和]中。 :)

+0

谢谢,那么愚蠢的问题。如何将[和]添加到回复中? – jacobt

+1

'[my_json_object]' –

+0

上述工作,如果你有一个对象,而不是一个字符串。对于字符串,请使用''['+ my_string +']''或'“[$ {my_string}]” –