19 votos

¿Cómo puedo arreglar "corchetes desequilibrados" en mi etiqueta de datos?

Menudo, cuando se hace una trampa de bloque de comandos, necesitas establecer una etiqueta de datos de una entidad. Estas etiquetas a veces pueden ser muy largas, con muchas capas de llaves y corchetes anidados. Por ejemplo, este es el comando para invocar a un aldeano con un intercambio personalizado:

/summon Villager ~ ~ ~ {Profesión:3,Carrera:2,Ofertas:{Recetas:[{buy:{id:minecraft:diamante,Cantidad:6b}},sell:{id:minecraft:azada_de_diamante,etiqueta:{ench:[{id:16s,nivel:10s}]}]}}

La interfaz de bloque de comandos de una sola línea de Minecraft hace que sea increíblemente difícil encontrar y corregir errores, especialmente cuando se trata de corchetes desequilibrados. De hecho, para fines de ilustración, puse un error en el comando anterior.

¿Qué técnicas puedo utilizar para encontrar y corregir corchetes cuadrados o llaves desequilibrados al escribir etiquetas de datos largas y complicadas?

0 votos

Estoy sorprendido de que no haya una herramienta automatizada para al menos verificar la estructura de las etiquetas de datos. Tal vez esto debería ser corregido.

0 votos

@MBraedley sí, estoy un poco sorprendido yo mismo. El análisis JSON permisivo de Minecraft hace que la mayoría de los comprobadores regulares de JSON se quejen.

0 votos

Solo una pregunta, dado que esto es claramente para todas las preguntas de "¿qué está mal con mi comando?", ¿debería la pregunta del título ser reformulada para que coincida con algo un poco más relevante para la búsqueda de Google?

32voto

MrLemon Puntos 13223

La forma más sencilla de encontrar corchetes desiguales es expandiendo el comando en un formato de varias líneas con líneas correctamente indentadas. Esto facilita encontrar errores y posteriormente corregirlos.

Una herramienta ingeniosa para formatear automáticamente sus etiquetas de datos se puede encontrar en http://jsonviewer.stack.hu/. Utilizando los botones Formato y Eliminar Espacio en Blanco, puede expandir o colapsar su comando respectivamente. Utilizando la etiqueta de datos de ejemplo dada en las preguntas, podemos convertir esto:

{Profession:3,Career:2,Offers:{Recipes:[{buy:{id:minecraft:diamond,Count:6b}},sell:{id:minecraft:diamond_hoe,tag:{ench:[{id:16s,lvl:10s}]}]}}

en esto:

{
  Profession: 3,
  Career: 2,
  Offers: {
    Recipes: [
      {
        buy: {
          id: minecraft: diamond,
          Count: 6b
        }
      },
      sell: {
        id: minecraft: diamond_hoe,
        tag: {
          ench: [
            {
              id: 16s,
              lvl: 10s
            }
          ]
        }
      ]
    }
  }

Ahora todo lo que queda es comparar los corchetes de apertura y cierre en cada nivel de indentación. Puede ver que no hay un corchete de cierre en el último nivel de indentación, el último corchete está indentado una vez, lo que nos muestra que falta un corchete de cierre en algún nivel.

Si revisa todas las etiquetas empezando desde arriba, puede ver que hay un problema con la etiqueta sell: Hay un corchete cuadrado de cierre en lugar de un corchete rizado en ese nivel de indentación. Para hacer esto aún más visible, podemos copiar y pegar nuestra etiqueta de datos en un editor de texto avanzado como Notepad++, que resalta los corchetes coincidentes para nosotros:

Tener el problema de corchete rizado faltante:

vista de notepad++

Aquí es inmediatamente aparente que se necesita un corchete rizado de cierre para la etiqueta sell.

Sin el corchete faltante:

introducir descripción de la imagen aquí

0voto

user143228 Puntos 21

Para agregar un poco de información: No creo que se necesite ningún formato, a menos que tengas un comando de 1000+ caracteres.
Para los "programadores" que están comenzando en Minecraft, recomendaría copiar el comando a Notepad/Gedit, encontrar los corchetes con más sangría y eliminar su contenido, luego eliminar el contenido de los corchetes "debajo" de esos y repetir hasta encontrar un par faltante/mal ubicado.
Para usuarios más avanzados, recomendaría hacerlo como yo: simplemente pensando en los pares de corchetes. De esta manera, pude (y cualquier otra persona puede) encontrar el error en el comando de ejemplo en unos 10 segundos sin ver la respuesta existente.

¡Espero que haya sido útil!

JugonesTop.com

Jugonestop es una comunidad para amantes del gaming. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X