2009-10-13 20 views
566

necesito Notepad ++ para tomar una cadena JSON de esta¿Cómo reformatear JSON en Notepad ++?

{"menu": {"id": "file","value": "File","popup": {"menuitem": [{"value": "New", "onclick": "CreateNewDoc()"},{"value": "Open", "onclick": "OpenDoc()"},{"value": "Close", "onclick": "CloseDoc()"}]}}} 

a este ...

{"menu": { 
    "id": "file", 
    "value": "File", 
    "popup": { 
    "menuitem": [ 
     {"value": "New", "onclick": "CreateNewDoc()"}, 
     {"value": "Open", "onclick": "OpenDoc()"}, 
     {"value": "Close", "onclick": "CloseDoc()"} 
    ] 
    } 
}} 

Miré alrededor a todas las opciones TextFX pero no pudimos encontrar nada que trabajaba.

Respuesta

768

18 Sep 2013 Actualización: derecho de Mike, que ahora se denomina opción JSToolNpp

JSMin 's JSformat convirtió la JSON en esto en Notepad ++ 6.1.2:

{ 
    "menu" : { 
    "id" : "file", 
    "value" : "File", 
    "popup" : { 
     "menuitem" : [{ 
     "value" : "New", 
      "onclick" : "CreateNewDoc()" 
     }, { 
      "value" : "Open", 
      "onclick" : "OpenDoc()" 
     }, { 
      "value" : "Close", 
      "onclick" : "CloseDoc()" 
     } 
     ] 
    } 
    } 
} 

enter image description here Consejo: Seleccione el código que desea reformatear, luego Complementos | JSTool | JSFormat.

+78

Parece estar listado como JSTool ahora –

+3

Gracias. Lo comprobé. Terminé usando JSONViewer, ya que permite formatear los datos JSON y no solo verlos en formato de árbol anidado. –

+8

JSTool también puede formatear los datos JSON. Simplemente presione Ctrl-Alt-M. Intenté algunos complementos ahora y creo que este es el mejor. – prograde

-2

Sé que ha preguntado acerca de NotePad ++ pero TextMate para OS X puede hacerlo a través del paquete JSON, se llama el comando "Reformatear documento".

+0

Creo que esto puede ser un comentario en lugar de una respuesta a la pregunta, ya que también lo menciona en su respuesta que no está directamente relacionado con la pregunta;) . –

37

Universal Indent GUI plug-in para Notepad ++ dará vuelta a su muestra en:

{ 
    "menu" : { 
     "id" : "file", "value" : "File", "popup" : { 
      "menuitem" : [ { 
       "value" : "New", "onclick" : "CreateNewDoc()"; 
      } 
      , { 
       "value" : "Open", "onclick" : "OpenDoc()"; 
      } 
      , { 
       "value" : "Close", "onclick" : "CloseDoc()"; 
      } 
      ]; 
     } 
    } 
} 
+0

desafortunadamente, esto no funciona con la versión Unicode más nueva de Notepad ++ 5.5 –

+3

Use el nuevo Administrador de complementos para descargar la versión que necesita. –

+1

Acabo de intentar instalar este complemento utilizando el Administrador de complementos y falló. – Bob

32

Yo personalmente uso JSON Viewer ya que el plugin de Notepad ++ no funciona más.

EDITAR - 24 de mayo de 2012

Yo aconsejaría que descargue el plugin JSMin para la libreta como se menciona en el answer. Esto funciona bien para mí en la última versión (v6.1.2 al momento de escribir).

EDITAR - el 7 de noviembre de 2017

Según comentario de @ danday74 continuación, JSMin es ahora JSToolNpp. Además, tenga en cuenta que la herramienta JSON Viewer está en Codeplex, que probablemente desaparecerá en el futuro cercano.

+0

Funciona cuando hago 'Complementos -> JSMin -> JSMin (Nuevo archivo)' y luego 'JSFormat' – aliopi

+1

JSMin se renombra JSTool - JSTool funciona bien – danday74

+1

@ danday74 ¡Gracias! He modificado la respuesta en consecuencia. –

1

Me funcionó en la última edición del Bloc de notas con UniversalIndentGui.

Lo que hice fue en la configuración del complemento elegir Habilitar actualización automática de texto, apareció una ventana y seleccioné javascript.

+0

agradable. gracias por el consejo. – neesh

-7

Su mejor opción es utilizar una de las últimas versiones de Eclipse (estoy usando Eclipse Galileo J2EE y Eclipse Ganymede J2EE). Crear un archivo JavaScript, a continuación, crear una variable:

var jsonObject = {"menu": {"id": "file","value": "File","popup": {"menuitem": [{"value": "New", "onclick": "CreateNewDoc()"},{"value": "Open", "onclick": "OpenDoc()"},{"value": "Close", "onclick": "CloseDoc()"}]}}}; 

Por último, golpeó CTRL +SHIFT +F y listo! Tienes un objeto JSON con sangría muy bonita. Yo también estoy buscando un formateador JSON Notepad ++, y muy bien podría verse forzado a desarrollar un plugin Npp dentro de poco tiempo en el futuro.

+8

¿Debo instalar un IDE completo solo para formatear algunos JSON? (-1) –

+0

Si tiene Visual Studio, simplemente pegue el texto json en un nuevo archivo y se formateará automáticamente. –

+0

* Yo también estoy buscando un formateador JSON Notepad ++, * Si tiene la misma pregunta, por favor no agregue una respuesta como esta y mantenga tan limpio;). –

4

No es una solución NPP, pero en un apuro, puede usar esta en línea JSON Formatter y luego simplemente pegue el texto formateado en NPP y luego seleccione Javascript como el idioma.

+4

Esta es una buena respuesta, pero humildemente presento que seleccionar Python como el idioma es aún mejor. –

+1

@ Brent.Longborough ¡Gracias por ese pequeño consejo! El resaltado JS tiene un extraño fondo gris, resaltar python es mucho más fácil para los ojos. – galaktor

-1

Puede usar http://www.jsonlint.com/ para editar su json en línea si no tiene Notepad ++.

+2

Directamente desde N ++? (-1) –

+0

La pregunta se trata sobre el uso de Notepad ++ no sobre abordar una solución alternativa;) –

1

Notepad 5.8.7 y jsmin 1.7.0.0 funciona de maravilla aquí.

Sin embargo, tenga cuidado, descubrió que jsmin come los comentarios de la peor manera (debería haberlo leído primero).

+0

Los comentarios pueden conservarse a través de una configuración. –

1

Estoy usando el complemento JSON Viewer con NPP 5.9 y parece funcionar bien.

1

Sé que este hilo es viejo pero recientemente encontré un problema con JSToolNPP no siendo compatible con mi N ++ recién actualizado, encontré un reemplazo que parece funcionar. http://sourceforge.net/projects/nppjsonviewer/

Utilice bajo su responsabilidad, ofc. (descargo de responsabilidad estándar de mí al vincular cualquier cosa fuera de SExchange, fyi)