Próbuję zaimplementować wysihml5 w aplikacji Sinatra przy użyciu Activerecord.to_json na pojedynczej wartości nie można przeanalizować
Bogaty edytor tekstu działa świetnie i kiedy złożyć formularz mam prawo html post do kontrolera:
pry:> request.params
=> {"title" => "title text",
"content" => "<b>bold text</b><br><i>italic text</i>",
"_wysihtml5_mode" => 1
}
Następnie usunąć skrótu wejścia „_wysihtml5_mode” od request.params aby utworzyć wpis db, następnie przekonwertować zawartość do 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)
problemem jest to, że nie mogę dostać mój wartość z powrotem jako początek:
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...
Jak mogę odzyskać te znaki Unicode do ich stylu utf-8 (może się mylę, nie czuję się dobrze z tabelą znaków). Wydaje się, że podczas przeliczaniem do formatu JSON, a "dodaje się na początku:?.
"<b>bold => "\"\\u003Cb\\u003Ebold
To może być problem Wszelkie pomysły
Czego oczekujesz po przekonwertowaniu ciągu znaków na format JSON? Czy nie potrzebujecie pary klucz-> wartość do jej konwersji? – miah
Cóż, przechodziłem na json, ponieważ w moim programie wartość treści jest czasem hashem, czasem łańcuchem lub tablicą ... Nie wiedziałem, że ich problem dotyczył parsera JSON i pojedynczych ciągów znaków. że działa to_json na łańcuchu. – Joeyjoejoe
problem jest to, że działa z JSON par wartości klucza, więc '{ "content"=>" tekst pogrubiony
tekst kursywą "} .to_json' zwraca poprawny json, ale'" tekst pogrubiony
kursywą tekst ".to_json' nie. – miah