Comment réparer les erreurs 'Invalid JSON' sur Minecraft PC?

Je suis allé à ce sujet pendant près de deux heures et personne ne semble avoir le même problème que moi et je doute que cela soit résolu mais je vais essayer de toute façon.

C'est le code

/tellraw @p ["Would you like to teleport?",{"text":"Yes","color":"green","bold":"true","clickEvent":{"action":"run_command","value":"/tp @p ~ ~4 ~ "},"hoverEvent":{"action":"show_text","value":{"text":"Confirm"}},{"text":"No","color":"red","bold":"true","clickEvent":{"action":"run_command","value":"/tellraw @p{"text":"Come back when you want to teleport"}"}}}] 

Cette partie est bien

 /tellraw @p ["Would you like to teleport?",{"text":"Yes","color":"green","bold":"true","clickEvent":{"action":"run_command","value":"/tp @p ~ ~4 ~ "},"hoverEvent":{"action":"show_text","value":{"text":"Confirm"}} 

C'est juste quand j'ajoute ceci

 ,{"text":"No","color":"red","bold":"true","clickEvent":{"action":"run_command","value":"/tellraw @p{"text":"Come back when you want to teleport"}"}}}] 

Minecraft me donne l'erreur:

JSON non valide à la colonne 1 colonne 203

J'ai essayé de l'espace et de comprendre quelle colonne 203 est mais je ne peux pas, je ne sais pas ce que j'ai fait. Quelqu'un a une idée?

Le «JSON» (ou « J ava s cript O Bject N otation») est la partie de la commande Minecraft entourée de crochets. Les crochets représentent un tableau, et tous les objets principaux (parenthèses) font partie de ce tableau.

Si vous n'avez pas configuré votre tableau ou vos objets de manière appropriée, Minecraft ne pourra pas interpréter ce que signifie votre commande. Heureusement, il existe des outils que vous pouvez utiliser pour vous déboguer.


La première chose à faire dans ces situations est de formater votre chaîne JSON pour faciliter la lecture. JSONLint peut être utilisé pour cela. Collez dans la partie de votre commande à partir du crochet carré, exécutez le validateur et copiez le JSON formaté.

Deuxièmement, vous souhaitez valider votre chaîne JSON. Vous pouvez également utiliser JSONLint pour valider les paramètres, mais je trouve que JSON Formatter & Validator est un peu plus facile à utiliser, car il conserve un historique des modifications afin que vous puissiez revenir à une version particulière si vous le souhaitez.

Voici la répartition de votre chaîne JSON et les erreurs JSON Formatter & Validator found:

Sortie de formatage et de validation JSON

La première chose que je peux voir, c'est que, dans la valeur de votre ClickEvent, il est mis en surbrillance la partie «texte» car les citations doubles que vous utilisez ici ne sont pas interprétées comme vous le souhaitez. Dans ce cas, vous voulez qu'ils soient traités comme «texte» pour être utilisés dans votre événement de clic plus tard, mais au moment où l'interprète JSON pense qu'ils sont la «fin» de l'énoncé JSON.

Vous devez ajouter une barre oblique inverse pour échapper à vos guillemets internes pour pouvoir être traité comme un texte:

 "value": "/tellraw @p{\"text\":\" Come back when you want to teleport \"}" ^ | ^ ^ ^ ^ external | these ones are 'escaped' because they quote mark | are 'inside' the external quotes 

Réparons-le et exécutez-le à nouveau:

Sortie de validation # 2

Maintenant, il ne reste qu'une erreur. Cela se produit parce que l'objet audessus du support en surbrillance n'est pas correctement fermé avec un support proche correspondant:

Échelle manquante

L'interprète s'attend à ce que vous fermez l'objet avant de lancer un nouveau:

  [ "Would you like to teleport?", { "text": "Yes", "color": "green", "bold": "true", "clickEvent": { "action": "run_command", "value": "/tp @p ~ ~4 ~ " }, "hoverEvent": { "action": "show_text", "value": { "text": "Confirm" } }}, ^ add this 

En cours de fonctionnement, il semblerait que l'erreur soit corrigée à cet objet, mais maintenant, il y a un collier supplémentaire en bas:

Attendre la virgule ou fermer le crochet

" Attendre une virgule ou"] "signifie qu'il s'attend à ce que vous ajoutiez un autre élément (avec une virgule) ou finissez le tableau (avec un crochet étroit). Ce cordage étroit n'a aucun sens ici.

Retirez ce support enroulé supplémentaire, et tada!

Valid JSON

Voici votre matrice JSON valide (vous pouvez la réduire en une seule ligne et ajouter de nouveau la substance de la commande). Je ne garantit pas que cela fera ce que vous voulez , mais au moins c'est valide maintenant.

 ["Would you like to teleport?", { "text": "Yes", "color": "green", "bold": "true", "clickEvent": { "action": "run_command", "value": "/tp @p ~ ~4 ~ " }, "hoverEvent": { "action": "show_text", "value": { "text": "Confirm" } } }, { "text": "No", "color": "red", "bold": "true", "clickEvent": { "action": "run_command", "value": "/tellraw @p{\"text\":\"Come back when you want to teleport\"}" } }] 

Tout d'abord, la "ligne" et les "colonnes" se réfèrent essentiellement aux caractères du texte. Puisque tout votre code (la commande) est tout sur une seule ligne, il est logique. La colonne, cependant, est l'individu "blocs" de chaque personnage s'inscrit. Eg .:

  | 0 | 1 | 2 | 3 | 4 | 1 | H | E | L | L | O | 

Comme vous pouvez le voir, le mot commence à la ligne 1, colonne 0 et se termine à la ligne 1, colonne 4. Donc, en référence à votre erreur, le 204ème caractère (n'oubliez pas de commencer à 0!) Est le personnage qui jette votre commande. Curieusement, cependant, cette erreur se réfère à la section de la commande après la cible (c'est-à-dire @p ) – y compris l'espace.

  | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ... 1 | | { | " | t | e | x | t | " | ... 

REMARQUE: Ce n'est peut-être pas un personnage qui existe déjà dans votre commande, mais il pourrait également s'agir d'un personnage attendu , mais n'est pas là.