Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

148
Views
Aplicar sangría bastante JSON en Google Sheet Apps Script

Me gustaría mostrar una alerta con un JSON bonito, pero no tiene una buena sangría.

Aquí está el código JS que estoy usando:

 var jsonText = JSON.stringify(jsonObject, null, 2) SpreadsheetApp.getUi().alert(jsonText);

Y aquí está la sangría que obtengo como resultado:

 ... "xxx": "", "xxx": "" }, { "xxx": "yyy", "xxx": "yyy", "xxx": "", "xxx": "" } ]

Falta la sangría de la pestaña, ¿alguna idea de cómo podría solucionarlo?

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Parece que los espacios normales \u{0020} se eliminan de la función SpreadsheetApp Ui.alert() . Puede usar cualquiera de los otros caracteres de espacio mencionados en esta respuesta como un carácter de espacio. \u{2000} funciona:

 SpreadsheetApp.getUi().alert( JSON.stringify( { x: 1, y: 2, z: [1, 2, { a: { b: 1 } }] }, null, '\u{2000}'.repeat(2) ) );
about 4 years ago · Juan Pablo Isaza Report

0

La única forma que conozco de imprimir bastante JSON en su ventana de alerta es obligar a JSON.stringify() a usar caracteres de espacio codificados que no se rompen para el parámetro de space .

Ejemplo:

 function popup() { var jsonObject = [{"x":1,"y":2},{"x":1,"y":2}]; // warning - the two spaces used below need to be non-breaking spaces: var jsonText = JSON.stringify(jsonObject, null, "  "); SpreadsheetApp.getUi().alert(jsonText); }

Esto genera el siguiente resultado en la ventana de alerta:

ingrese la descripción de la imagen aquí

Nota : probablemente no pueda copiar / pegar esos espacios que no se rompen de mi respuesta. Creo que solo terminará copiando espacios regulares, lo que no le dará la sangría requerida (se colapsarán según las reglas estándar de HTML con respecto a espacios en blanco consecutivos) .

Entonces, en su lugar, puede ingresar manualmente los caracteres NBSP usando su teclado.

Para mí en Windows, esto fue manteniendo presionada la tecla ALT y escribiendo la secuencia numérica 0160 .

En una Mac es opt + space .

Para más sistemas, consulte métodos de entrada de teclado nbsp .


Personalmente, encuentro esto un poco desagradable, no se puede decir fácilmente que se trata de NBSP codificados, se ven como espacios en blanco regulares en su código fuente. Es por eso que agregué un comentario en el código. Si hay una solución más limpia, obtendría mi voto.

(Y usar la secuencia   no funcionó para mí, se trató como una cadena literal).

about 4 years ago · Juan Pablo Isaza Report

0

Puede ver las sangrías en un área de texto:

 function onMyEdit(e) { SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(`<textarea cols="30" rows="12">${JSON.stringify(e,['range','columnStart','rowStart','value','source','rowEnd','rowStart','oldValue'],10)}</textarea>`),'Simple Dialog'); }

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!