web-dev-qa-db-fra.com

Ruby on Rails JSON.parse: erreur de jeton inattendue

J'essaie d'analyser les données JSON dans mon application Rails 3 avec JSON.parse. Je continue à avoir cette erreur: 

737: jeton inattendu à '{\ "0 \": {\ "class \":\"window \",\"text \":\"Testing \",\"style \":\"position: Absolute; haut: 8px; gauche: 8px; largeur: 560px; hauteur: 290px; z-index: 0;\"}

Le JSON réel est beaucoup plus long, mais il est fondamentalement le même.

18
SZH

Eh bien, nous ne pouvons répondre que sur la partie du JSON que vous nous avez montrée, mais cela pose deux problèmes:

  1. Tous les caractères de citation (") sont échappés; ils n'ont pas besoin de l'être sauf s'ils sont utilisés dans une chaîne à double notation, ce qui, apparemment, ne le sont pas.
  2. Il vous manque une accolade de fermeture (}).

Sinon, il passe sur https://jsonlint.com/ .

37
Michelle Tilley

Dans mon cas, c’était un caractère de tabulation caché qui n’apparaissait que lorsque je l’avais collé dans vim.

11
Pratik Khadloya

Vous pouvez directement utiliser la méthode JSON.Parse() in-build: 

content = "[{\"addon_id\":\"1\",\"addon_price\":\"5\"}]"
# OUTPUT at Console => "[{\"addon_id\":\"1\",\"addon_price\":\"5\"}]"

JSON.parse(content.gsub('\"', '"'))
# OUTPUT at Console => [{"addon_id"=>"1", "addon_price"=>"5"}]
1
Jai Kumar Rajput