-5
votes

Comment convertir la chaîne en objet

var s = "{ "background-color": "#4a90e2", "margin": 10px }";
JSON.parse(s);
the above code throws following error
  Uncaught SyntaxError: Unexpected token p in JSON at position 46

4 commentaires

C'est une chaîne JSON non valide, 10px doit être comme ceci: "10px" , donc avec json.parse () vous ne pouvez pas .


String est une chaîne non valide, vous ne pouvez pas avoir " intérieur "


Vous manquez une citation dans "marge": 10px ==> "marge": "10px"


Votre chaîne n'est pas un JSON valide (comme l'erreur le dit), vous devez mettre "autour du 10px


5 Réponses :


1
votes

Vous devez simplement envelopper 10px dans des guillemets ("10px") et assurez-vous d'alterner entre différentes citations pour ne pas casser les cordes:

var s = '{ "background-color": "#4a90e2", "margin": "10px" }';
JSON.parse(s);


0 commentaires

1
votes

Actuellement, votre syntaxe JSON est incorrecte, ainsi que votre syntaxe JavaScript.

Votre JSON doit avoir des clés qui sont des chaînes et des valeurs qui sont des chaînes. Pour le moment, votre 10px code> n'est pas une chaîne. Vous devez modifier ceci en "10px" code> p>

De plus, vos devis de votre chaîne que vous utilisez pour les clés / valeurs de l'objet enfreignent la chaîne elle-même. Vous pouvez utiliser des backticks, des backslashes ou des guillages simples pour encapsuler correctement votre chaîne (sans casser la chaîne): p>

Citations simples: PRE>

var s = "{\"background-color\": \"#4a90e2\", \"margin\": \"10px\"}";
console.log(JSON.parse(s));


0 commentaires

2
votes

Votre chaîne d'entrée est invalide.

  • Vous ne pouvez pas avoir " à l'intérieur d'un autre "

  • aussi 10px est une chaîne afin que vous ayez besoin d'envelopper dans la citation

    Les modifications doivent être effectuées - xxx


0 commentaires

1
votes

Vous devez utiliser différents types de citations! Cela fonctionnerait: '{"fond-couleur": "# 4A90E2", "marge": "10px"}' . .


0 commentaires

0
votes

Tout d'abord, ne devrait-il pas être une chaîne? Veuillez ajuster cela ...


2 commentaires

Déjà il y a tellement de réponses indiquant la même chose, qu'est-ce qui est nouveau dans le vôtre?


J'ai répondu avant que des réponses similaires ne changent, c'est probablement le réseau.