Saltar al contenido

¿Cómo soluciono los errores de “JSON no válido”?

Solución:

El ‘JSON’ (o ‘Javascript Oobjeto norteotation ‘) es la parte del comando de Minecraft rodeada por corchetes. Los corchetes representan una matriz y todos los objetos principales (corchetes) son parte de esa matriz.

Si no ha configurado su matriz u objetos de la manera correcta, Minecraft no podrá interpretar lo que significa su comando. Afortunadamente, existen algunas herramientas que puede usar para ayudarlo a depurar esto.


Lo primero que debe hacer en estas situaciones es formatear su cadena JSON para que sea más fácil de leer. JSONLint se puede utilizar para esto. Pegue la parte de su comando que comienza desde el corchete, ejecute el validador y copie el JSON formateado.

En segundo lugar, desea validar su cadena JSON. También puede usar JSONLint para validar la configuración, pero creo que JSON Formatter & Validator es un poco más fácil de usar, ya que mantiene un historial de cambios para que pueda volver a una versión en particular si lo necesita.

Aquí está el desglose de su cadena JSON y los errores Formateador y validador JSON fundar:

Salida de validación y formateador JSON

Lo primero que puedo ver es que, en el valor de su ClickEvent, está resaltada la parte de ‘texto’ porque las comillas dobles que está usando aquí no se interpretan de la manera que usted desea. En este caso, desea que se traten como ‘texto’ para usarlos en su evento de clic más adelante, pero en este momento el intérprete JSON cree que son el ‘final’ de la declaración JSON.

Debe agregar una barra invertida para escapar de las comillas dobles internas para que se traten como texto:

"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

Arreglemoslo y volvamos a ejecutarlo:

Salida de validación n. ° 2

Ahora solo queda un error. Esto sucede porque el objeto encima el corchete resaltado no está bien cerrado con un corchete de cierre correspondiente:

Corchete que falta

El intérprete espera que cierre el objeto antes de iniciar uno nuevo:

 [
    "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

Running again, it seems that fixed the error at that object, but now there’s an extra close-bracket at the bottom:

Expecting comma or close square bracket

Expecting comma or ‘]’“significa que espera que agregue otro elemento (con una coma) o que termine la matriz (con un corchete cerrado). Ese corchete cerrado no tiene sentido aquí.

Quita ese corchete extra y ¡tada!

JSON válido

Aquí está su matriz JSON válida (puede reducirla a una sola línea y volver a agregar el comando usted mismo). No doy garantías de que hará lo que tu querer, pero al menos ahora es válido.

["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"}"
    }
}]

En primer lugar, la “línea” y las “columnas” se refieren básicamente a los caracteres del texto. Dado que todo su código (el comando) está en una sola línea, tiene sentido. Sin embargo, la columna son los “bloques” individuales en los que se encuentra cada personaje. Por ejemplo:

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

Como puede ver, la palabra comienza en ‘línea 1, columna 0’ y termina en ‘línea 1, columna 4’. Entonces, en referencia a su error, el carácter 204 (¡recuerde comenzar en 0!) Es el carácter que está lanzando su comando. Sin embargo, por extraño que parezca, este error se refiere a la sección del comando después el objetivo (es decir @p) – incluido el espacio.

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

NOTA: Puede que no sea un personaje que ya exista en tu comando, también podría ser un personaje que sea esperado, pero no está ahí.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *