Foros del Web » Programando para Internet » Javascript »

Array de bytes en un JSON

Estas en el tema de Array de bytes en un JSON en el foro de Javascript en Foros del Web. Tengo un array ed bytes en un objeto JSON. algo como asi: Código: { "blogUrl" : "http://fabianib.blogspot.com/", "avatar" :[ -119, 80, 78, 71, 13, 10, ...
  #1 (permalink)  
Antiguo 13/08/2008, 11:34
 
Fecha de Ingreso: marzo-2008
Mensajes: 18
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Array de bytes en un JSON

Tengo un array ed bytes en un objeto JSON. algo como asi:


Código:
{
"blogUrl" : "http://fabianib.blogspot.com/",
"avatar" :[ -119, 80, 78, 71, 13, 10, 26, 10,..........40 13,41 73,42 72,43 68]
}
lo que sucede que ese array de bytes es resultado de un objeto Blob que estoy
obteniendo de la base de datos (es una imagen).

que obtengo asi (JAVA):
Código:
blog.setAvatar(rs.getBytes("authorAvatar"));
donde authorAvatar es una campo tipo Blob.

La pregunta seria, como le puedo hacer para que el browser interprete ese
array de bytes que pase al JSON como una imagen????

Gracias!
  #2 (permalink)  
Antiguo 13/08/2008, 11:42
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: Array de bytes en un JSON

A menos que crees un archivo externo que interprete esa salida y devuelva una imagen real dentro de un tag img, vas a tener problemas de compatibilidad, ya sea usando canvas, data:URI o svg, que me parece son tus alternativas en este caso.
  #3 (permalink)  
Antiguo 19/08/2008, 12:31
 
Fecha de Ingreso: marzo-2008
Mensajes: 18
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Array de bytes en un JSON

Gracias por la ayuda!!! me funciono la idea de utilizar
data: URI...

Lo implemente simplemente pasando el tipo Blob de java a un array de bytes, para luego encodear ese array de bytes a base64, y luego mandarlo al browser.

Gracias de nuevo!
  #4 (permalink)  
Antiguo 19/08/2008, 16:14
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: Array de bytes en un JSON

Hola:

Cita:
Iniciado por Panino5001
vas a tener problemas de compatibilidad
La verdad es que no he entendido la duda, pero he de advertir que en IE6 no me ha funcionado la interfaz data: URI, sin embargo en FF3 sí.

Símplemente aviso por si no te has percatado del detalle.



Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 19/08/2008, 17:57
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: Array de bytes en un JSON

Exacto, a eso me refería con problemas de compatibilidad: a que explorer, hasta le versión 8 no ofrece soporte para este esquema. No obstante, es posible implementar parches con lenguaje de servidor, como este: http://dean.edwards.name/weblog/2005/06/base64-ie/. Calculo que algo así habrá usado, aunque en ese caso, habiendo posibilidad de usar lenguaje de servidor para generar la imagen mediante un archivo externo (como en realidad sugerí inicialmente), no le veo mucho sentido a implementar ese esquema.
Otra alternativa que posiblemente haya usado es detectar el navegador y, en caso de que el mismo sea explorer, generar una salida mhtml, y en caso contrario, una salida html con esquema data:uri. (http://www.disegnocentell.com.ar/new...los.php?id=126)
La verdad, salvo la de la imagen generada con lenguaje de servidor, me parecen soluciones rebuscadas, aplicables sólo a casos en los que no se dispone de lenguaje de servidor.

Última edición por Panino5001; 19/08/2008 a las 18:06
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:54.