2010-09-09 40 views
0

我這個JSON發送到我的控制器(如我的WEBrick日誌中看到):是誰吃我的 n

{\"repeatEveryYear\":\"TRUE\",\"scheduleTime\":\"2010-09-09T16:11:46Z\",\"message\":\"Hello World\n\nFirst test\"} 

我不知道,所有的轉義從何而來,它是不是我添加和它似乎軌道吃它就好了?

我的問題是,第二個\ n獲取吃在過程中的一些地方。這裏是我的控制器讀取JSON:

class SchedulesController < ApplicationController 
    def create 
    @schedule = Schedules.new.from_json(params[:schedule]) 
    @schedule.save 
    render :json => "ok" 
    end 
end 

我可以做什麼來解決這個問題的任何想法?

謝謝

+2

\ n怪物! nom nom – 2010-09-09 18:58:54

回答

0

您可能需要雙逃脫換行符:

{\"repeatEveryYear\":\"TRUE\",\"scheduleTime\":\"2010-09-09T16:11:46Z\",\"message\":\"Hello World\\n\\nFirst test\"} 

這將相互轉換\\\在第一輪(第一解碼),然後\n到新行在第二遍(因爲它看起來像是一個兩遍的字符串)。

+0

那麼爲什麼它只是被吃掉的雙倍\ n之一呢?嗯也許,但我該怎麼做?我試過用.gsub(/ \ n /,「\\ n」) – Neigaard 2010-09-09 19:32:35

+0

只做了一些更多的測試。如果我在json中只有一個\ n,就像A \ nB一樣,它也會被刪除並變成一個空格,所以它變成了A B,但是如果我有A \ n \ nB它會變成A \ nB? – Neigaard 2010-09-09 19:35:57

+0

嗯,.gsub(/ \ n /,「\\ n」)確實有效...... – Neigaard 2010-09-10 18:56:53