2013-05-31 160 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}]」 –