Página 1 de 1
Xailer i HASHes
Publicado: Sab Feb 24, 2018 4:32 pm
por XeviCOMAS
Bien, entrando en el tema de hash (array indeterminado)... un nuevo mundo por descubrir para mi, bien, pues veo que los controles de Xailer no estan familiarizados a tratar con ese typo de variables (Valtype() de un hash = "H") y no lo muestra en un sencillo Logdebug( miHash) o un MsgInfo(miHash) muestra { >= } pero nunca su contenido.
Para mostrar un contenido de un hash, debo de hacer LogDebug( HB_JsonEncode( hHash ) )
O un MsgInfo... MsgInfo( HB_JsonEncode( hHash ) )
No se... si se puede añadir a esas funciones que si se trata de mostrar un hash, que internamente ya lo haga la propia función.
Gracias.
Re: Xailer i HASHes
Publicado: Sab Feb 24, 2018 7:27 pm
por ignacio
Buenas tardes,
Creo que está mezclando dos temas completamente distintos aunque muchas veces se usen conjuntamente, que son los HASH y los JSONs.
Un hash de Harbour es simplemente una matriz 'especial' y cada uno de sus elementos puede tener cualquier tipo de valor, al igual que ocurre con las matrices. El logdebug() de una matriz no muestra su contenido, porque puede ser tremendamente compleja e incluso a veces alguno de sus elementos apuntan a otras matrices que a su vez apuntan a la matriz inicial y se crean referencias circulares. Por el mismo motivo no se muestra el contenido de un Hash.
Le adjunto más información acerca de los JSON:
https://es.wikipedia.org/wiki/JSON
Saludos
Re: Xailer i HASHes
Publicado: Dom Feb 25, 2018 1:32 pm
por XeviCOMAS
Bien, tampoco se trata de un tema preocupante... si de esta manera puedo visualizar el contenido de un hash
LogDebug( HB_JsonEncode( hHash ) )
O un MsgInfo... MsgInfo( HB_JsonEncode( hHash ) )
Y además, para poder visualizarlo "ordenadamente" puedo utilizar el segundo parámetro de hb_jsonencode()
HB_JsonEncode( hHash, .T. )
y el resultado es más "cómodo" de verlo...
{
"installed":
{
"client_id": "xxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com",
"project_id": "xxxx-apis-xxxxxx",
"auth_uri": "
https://accounts.google.com/o/oauth2/auth",
"token_uri": "
https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "
https://www.googleapis.com/oauth2/v1/certs",
"client_secret": "12345678901234567-xxxxxx",
"redirect_uris":
[
"urn:ietf:wg:oauth:2.0:oob",
"
http://localhost"
]
}
}