簡體   English   中英

Ruby + JSON +正則表達式

[英]Ruby + JSON + Regexp

我正在研究RoR項目,並且正在將JSON對象傳遞給腳本。 具體來說,是jQuery日歷的事件列表。

首先,我從活動記錄中獲取必要的事件並將其轉換為json:

@events = CalendarEvent.find(:all, :conditions => ["mentor_id = ?", current_user]).to_json(:only => [:id, :availability, :starts_at, :ends_at])

這將返回以下內容:

[{"calendar_event":{"starts_at":"2010-08-14T17:15:00Z","id":1,"availability":true,"ends_at":"2010-08-14T17:45:00Z"}},
 {"calendar_event":{"starts_at":"2010-08-15T15:45:00Z","id":2,"availability":true,"ends_at":"2010-08-15T16:15:00Z"}},
 ...]

但是,我遇到了問題,因為腳本期望使用以下格式:

[{"starts_at":"2010-08-14T17:15:00Z","id":1,"availability":true,"ends_at":"2010-08-14T17:45:00Z"},
 {"starts_at":"2010-08-15T15:45:00Z","id":2,"availability":true,"ends_at":"2010-08-15T16:15:00Z"},
 ...]

最初,我認為從單獨的哈希值中彈出值,然后返回一個填充有這些值的數組,將是一個簡單的問題。 但是,似乎數組中的所有內容都是一個大字符串。 因此,我試圖使用正則表達式獲取必要的內容。 我最好的鏡頭是:

@json = @events.scan(/\[\{\"calendar_event\":(\{.*\})\}\]*/)

但這返回某種形式:

[["{\"starts_at\":\"2010-08-14T17:15:00Z\",\"id\":1,\"availability\":true,\"ends_at\":\"2010-08-14T17:45:00Z\"}},{\"calendar_event\":{\"starts_at\":\"2010-08-15T15:45:00Z\",\"id\":2,\"availability\":true,\"ends_at\":\"2010-08-15T16:15:00Z\"}},..."]]

任何幫助,將不勝感激。

ActiveRecord::Base.include_root_in_json = false

玩得開心。

閱讀文檔會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM