Ruby/Rails convert string to JSON -> JSON.parse produces JSON::ParserError
One of the fields in my table has the JSON type so inside the model to save string there I need to do something like:
create(modifications: string.to_json,
...
)
to display this on the view the modifications
column is parsed by JSON.parse which gives me the error 784: unexpected token at '"test registrant history"'
Long story short:
2.4.5 :042 > json_test = 'testing the string'.to_json
=> "\"testing the string\""
2.4.5 :043 > JSON.parse(json_test)
JSON::ParserError: 784: unexpected token at '"testing the string"'
why is this happening? how do you make JSON from a string then?
[Edit]
I'm on Rails 5 and Ruby 2.4.5
It's an issue on versions of json gem (<2). To avoid it you should use versions of json >2. So you might try to upgrade your rails version or just use quirks_mode: true
.
JSON.parse(json_test, quirks_mode: true)
Here is a link to the issue on github json issue