2010-09-09 6 views
0

j'envoyer ce JSON à mon contrôleur (comme on le voit dans mon webrick journal):Qui mange ma n

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

Je ne sais pas où tout l'échappement vient, ce n'est pas quelque chose que j'ajouter, et il semble que les rails le mange bien?

Mon problème est que le second \ n est mangé quelque part dans le processus. Voici mon contrôleur qui lit le json:

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

Des idées sur ce que je peux faire pour résoudre ce problème?

Merci

+2

Le \ n monstre! nom nom –

Répondre

0

Vous pourriez avoir à double-échapper aux sauts de ligne:

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

Cela va convertir chaque \\ à \ au premier passage (premier décodage), puis le \n à la nouvelle ligne sur le 2ème passage (car on dirait que c'est une chaîne de deux passes).

+0

Eh bien, pourquoi est-ce seulement un des doubles qui est mangé? Hm peut-être, mais comment je fais ça? J'ai essayé avec .gsub (/ \ n /, "\\ n") – Neigaard

+0

Juste fait plus de test. Si j'ai seulement un \ n dans le json, comme A \ nB, il est aussi enlevé et transformé en un espace donc il devient A B, mais si j'ai A \ n \ nB il devient A \ nB ?? – Neigaard

+0

Hm bien le .gsub (/ \ n /, "\\ n") fonctionne ... – Neigaard

Questions connexes