Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Extendiendo la clase JSON - Encode2
#1
Lightbulb 

Hola amigos.
Aquí les propongo una función que formatea un texto Json de una forma mas legible para humanos.
Gracias al aporte de  Laurent Carlier
https://gitlab.com/lordheavy/alpha/-/blo...class#L100
Para usar esto les recomiendo que creen una clase en vuestro proyecto llamada JSON (en mayúsculas) y luego pongan esto dentro y luego llamen al método normalmente desde todas partes con JSON.Encode2

GAMBAS
  1. ' Gambas class file
  2.  
  3. ' This program is free software; you can redistribute it and/or modify
  4. ' it under the terms of the GNU General Public License as published by
  5. ' the Free Software Foundation; either version 2 of the License, or
  6. ' (at your option) any later version.
  7.  
  8.  
  9. '' Encode in JSON format in a human readable way. Based on a Laurent tool
  10.  
  11.  
  12.   Dim sInput As String
  13.   Dim sOutput As String
  14.   Dim iStream As Stream
  15.  
  16.   Dim $sReadChar As String
  17.   Dim $iTab As Integer
  18.   Dim $bQuote, $bBracket As Boolean
  19.  
  20.   sInput = JSON.Encode(vData)
  21.  
  22.   iStream = Open String sInput For Read
  23.  
  24.   While (Not Eof(iStream))
  25.     $sReadChar = Read #iStream, 1
  26.     If ($sReadChar = "{" And Not $bQuote) Then
  27.       $iTab += 1
  28.       $sReadChar &= "\n" & Space$($iTab * 2)
  29.     Else If ($sReadChar = "}" And Not $bQuote) Then
  30.       $iTab -= 1
  31.       $sReadChar = "\n" & Space$($iTab * 2) & $sReadChar
  32.     Else If ($sReadChar = "\"") Then
  33.       $bQuote = Not $bQuote
  34.     Else If ($sReadChar = "[") Then
  35.       $bBracket = True
  36.     Else If ($sReadChar = "]") Then
  37.       $bBracket = False
  38.     Else If ($sReadChar = ":" And Not $bQuote) Then
  39.       $sReadChar &= " "
  40.     Else If ($sReadChar = "," And Not $bQuote) Then
  41.       If (Not $bBracket) Then
  42.         $sReadChar &= "\n" & Space$($iTab * 2)
  43.       Else
  44.         $sReadChar &= " "
  45.       Endif
  46.     Endif
  47.     sOutput &= $sReadChar
  48.   Wend
  49.  
  50.   Close iStream
  51.   ' replace null with ""
  52.   sOutput = Replace(sOutput, " null", " \"\"")
  53.  
  54.   Return sOutput
  55.  



1 Saludo.
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje
Último mensaje por tincho
06-11-2020, 18:19

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)