sto provando a implementare wysihml5 in un'applicazione sinatra utilizzando Activerecord.to_json su singolo valore non può essere restituito
L'editor di testo ricco funziona alla grande e quando ho inviare il modulo di I Got a destra dopo html nel controllore:
pry:> request.params
=> {"title" => "title text",
"content" => "<b>bold text</b><br><i>italic text</i>",
"_wysihtml5_mode" => 1
}
Poi, rimuovo hash entry "_wysihtml5_mode" da request.params per creare la voce di db, poi ho convertire i contenuti a jSON:
pry:> request.params.delete("_wysihtml5_mode")
=> 1
pry:> request.params["content"].to_json
=> "\"\\u003Cb\\u003Ebold text\\u003C/b\\u003E...
pry:> class.create(request.params)
Il problema è che non posso ottenere il mio valore indietro come inizio:
pry:> class.last.content
=> "\"\\u003Cb\\u003Ebold text\\u003C/b\\u003E...
pry:> JSON.parse(class.last.content)
JSON::ParseError: 743: unexpected token at '"\\u003Cb\\u003Ebold text\\u003C/b\\u003E...
Come potrei recuperare questi caratteri unicode nel loro stile utf-8 (potrei sbagliarmi, non mi trovo a mio agio con la tabella dei caratteri). Sembra che durante la conversione a JSON, un "si aggiunge agli inizi:?.
"<b>bold => "\"\\u003Cb\\u003Ebold
Questo potrebbe essere il problema Tutte le idee
Che cosa ti aspetti che succeda quando converti una stringa in formato JSON? Non hai bisogno di una chiave-> coppia di valori per convertirla correttamente? – miah
Beh, stavo convertendo in JSON perché, nel mio programma, il valore del contenuto è a volte un hash, a volte una stringa o un array ... Non sapevo che fosse un problema con il parser JSON e le stringhe singole, dato che to_json on string stava funzionando. – Joeyjoejoe
il problema è che JSON funziona con coppie di valori chiave, in modo '{ "contenuto"=>" testo in grassetto
testo in corsivo '} .to_json' ritorna JSON valido, ma '' testo in grassetto
corsivo ".to_json' no. – miah