Foros del Web » Programando para Internet » Javascript »

Convertir un Objeto javascript a texto (string)

Estas en el tema de Convertir un Objeto javascript a texto (string) en el foro de Javascript en Foros del Web. Buenas. Cualquier ayuda me sirve. Resulta que tengo que imprimir un objeto tal cual me lo envía una función así: Código PHP: function  ConvetirObjeto (){ ...
  #1 (permalink)  
Antiguo 05/02/2009, 19:54
Avatar de gersveo  
Fecha de Ingreso: julio-2008
Mensajes: 145
Antigüedad: 16 años, 5 meses
Puntos: 5
Convertir un Objeto javascript a texto (string)

Buenas. Cualquier ayuda me sirve.
Resulta que tengo que imprimir un objeto tal cual me lo envía una función así:

Código PHP:
function ConvetirObjeto(){
       var 
objeto = new Object();
       
objeto = {nivel:'A'nombre:'Costa Sur'personal:'145'};
       return 
objeto;
}

var 
PeticionObjeto =  ConvetirObjeto(); 
y en un div tengo que mostrar el objeto tal cual osea tengo que imprimir:
{nivel:'A', nombre:'Costa Sur', personal:'145'}
Si con todo y corchetes se tiene que mostrar. Asi que cualquier ayuda me es de mucha utilidad, una pista lo que sea.

El objeto que tengo que mostrar es muy extenso y a su vez tiene array dentro del objeto algo asi como:
objeto.A[0] = 1;
objeto.A[1] = 2;
objeto.A[2] = 3;
objeto.B[0] = 7;
objeto.B[1] = 8;

De antemano Gracias.
  #2 (permalink)  
Antiguo 05/02/2009, 20:59
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses
Puntos: 834
Respuesta: Convertir un Objeto javascript a texto (string)

Fijate si te sirve:
Código PHP:
<script>
var 
objeto = {nivel:'A'nombre:'Costa Sur'personal:'145',algo:{pepe:123},otro:['a','b']};
var 
a='';
function 
recorrer(o){
    if(
o.constructor==Array)
        
a+='[';
    if(
o.constructor==Object)
        
a+='{';
    for(var 
i in o){
        if(
o.constructor!=Array)
            
a+=i+':';
        if(
o[i].constructor==Object){
            
recorrer(o[i]);
        }else if(
o[i].constructor==Array){
            
recorrer(o[i]);
        }else if(
o[i].constructor==String){
            
a+='"'+o[i]+'",';
        }else{
            
a+=o[i]+',';
        }
            
    }
    if(
o.constructor==Object)
        
a+='},';
    if(
o.constructor==Array)
        
a+='],';
    return 
a.substr(0,a.length-1).split(',}').join('}').split(',]').join(']');
}
alert(recorrer(objeto));
</script> 
  #3 (permalink)  
Antiguo 05/02/2009, 22:25
Avatar de gersveo  
Fecha de Ingreso: julio-2008
Mensajes: 145
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: Convertir un Objeto javascript a texto (string)

Cita:
Iniciado por Panino5001 Ver Mensaje
Fijate si te sirve:
Código PHP:
<script>
var 
objeto = {nivel:'A'nombre:'Costa Sur'personal:'145',algo:{pepe:123},otro:['a','b']};
function 
recorrer(o){
        var 
a='';
    if(
o.constructor==Array)
        
a+='[';
    if(
o.constructor==Object)
        
a+='{';
    for(var 
i in o){
        if(
o.constructor!=Array)
            
a+=i+':';
        if(
o[i].constructor==Object){
            
recorrer(o[i]);
        }else if(
o[i].constructor==Array){
            
recorrer(o[i]);
        }else if(
o[i].constructor==String){
            
a+='"'+o[i]+'",';
        }else{
            
a+=o[i]+',';
        }
            
    }
    if(
o.constructor==Object)
        
a+='},';
    if(
o.constructor==Array)
        
a+='],';
    return 
a.substr(0,a.length-1).split(',}').join('}').split(',]').join(']');
}
alert(recorrer(objeto));
</script> 
uyy si este me sirve de mucho
gracias me sacaste de un apuro
solo le cambie una cosilla (var a='';)dentro de la función
Invertiste tiempo en esto, Mil y Mil gracias.

Última edición por gersveo; 05/02/2009 a las 22:39 Razón: Corrección
  #4 (permalink)  
Antiguo 06/02/2009, 10:07
Avatar de gersveo  
Fecha de Ingreso: julio-2008
Mensajes: 145
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: Convertir un Objeto javascript a texto (string)

UYYYYYY encontre un problema de compatibilidad con de este script con la libreria prototype.js
el que quiera prueba este script con la libreria prototype.js incluida. Cuando encuentra un array dentro del objeto aparece esto:
objeto ={nombre:"Pedro", apellido:"Perez", color:['rojo', 'amarillo']};
esto imprime;
{nombre:'Pedro', apellido:'Perez', color:['rojo', function (iterator, context) {
var index = 0;
try {
this._each(function (value) {iterator.call(context, value, index++);});
} catch (e) {
if (e != $break) {
throw e;
}
}
return this;
},function (number, iterator, context) {
var index = - number, slices = [], array = this.toArray();
if (number < 1) {
return array; ... ... ... y sigue el codigo...

este script que imprime es de la libreria prototype.js

por qué ocurrirá esto???
  #5 (permalink)  
Antiguo 06/02/2009, 10:30
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses
Puntos: 834
Respuesta: Convertir un Objeto javascript a texto (string)

Porque esas librerías modifican los prototipos de los objetos nativos, generando ese tipo de cosas. Por eso, mejor no usar librerías sin conocerlas perfectamente.
  #6 (permalink)  
Antiguo 06/02/2009, 12:20
Avatar de gersveo  
Fecha de Ingreso: julio-2008
Mensajes: 145
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: Convertir un Objeto javascript a texto (string)

Ya lo resolví
convertí todos los array a objetos y si me funciona bien

Y si tienes razón hay que mirar mejor la documentación de prototype.js
  #7 (permalink)  
Antiguo 30/10/2009, 12:58
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años, 7 meses
Puntos: 50
Respuesta: Convertir un Objeto javascript a texto (string)

Disculpenmé que reviva un tema tan viejo, pero encontré un bug en este script y dado a que es una función bastante útil, me pareció importante modificarlo:
Cita:
Iniciado por Panino5001 Ver Mensaje
Fijate si te sirve:
Código PHP:
<script>
var 
objeto = {nivel:'A'nombre:'Costa Sur'personal:'145',algo:{pepe:123},otro:['a','b']};
var 
a='';
function 
recorrer(o){
    if(
o.constructor==Array)
        
a+='[';
    if(
o.constructor==Object)
        
a+='{';
    for(var 
i in o){
        if(
o.constructor!=Array)
            
a+=i+':';
        if(
o[i].constructor==Object){
            
recorrer(o[i]);
        }else if(
o[i].constructor==Array){
            
recorrer(o[i]);
        }else if(
o[i].constructor==String){
            
a+='"'+o[i]+'",';
        }else{
            
a+=o[i]+',';
        }
            
    }
    if(
o.constructor==Object)
        
a+='},';
    if(
o.constructor==Array)
        
a+='],';
    return 
a.substr(0,a.length-1).split(',}').join('}').split(',]').join(']');
}
alert(recorrer(objeto));
</script> 
Donde llama a la función recorrer recursivamente, no se está almacenando el valor que devuelve la función. El script corregido quedaría así:
Código javascript:
Ver original
  1. function recorrer(o)
  2. {
  3.     var a='';
  4.     if(o.constructor==Array)
  5.     {
  6.         a+='[';
  7.     }
  8.     if(o.constructor==Object)
  9.     {
  10.         a+='{';
  11.     }
  12.     for(var i in o)
  13.     {
  14.         if(o.constructor!=Array)
  15.         {
  16.             a+=i+':';
  17.         }
  18.        
  19.         if(o[i].constructor==Object)
  20.         {
  21.             a+=recorrer(o[i])+',';
  22.         }
  23.         else if(o[i].constructor==Array)
  24.         {
  25.             a+=recorrer(o[i])+',';
  26.         }
  27.         else if(o[i].constructor==String)
  28.         {
  29.             a+='"'+o[i]+'",';
  30.         }
  31.         else
  32.         {
  33.             a+=o[i]+',';
  34.         }
  35.     }
  36.     if(o.constructor==Object)
  37.     {
  38.         a+='},';
  39.     }
  40.     if(o.constructor==Array)
  41.     {
  42.         a+='],';
  43.     }
  44.     return a.substr(0,a.length-1).split(',}').join('}').split(',]').join(']');
  45. }

¡Suerte!

Última edición por dggluz; 30/10/2009 a las 13:04 Razón: Descubrí otro bug... faltaban un par de comas.
  #8 (permalink)  
Antiguo 30/10/2009, 17:36
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses
Puntos: 834
Respuesta: Convertir un Objeto javascript a texto (string)

En realidad, si te fijás bien, es lo mismo. Por eso había creado una variable global, para que sea almacenado el resultado (no se pierde como estás creyendo).
No obstante, una versión mejorada (sin usar variables globales) podés encontrarla en este enlace:
http://www.disegnocentell.com.ar/notas2.php?id=225
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:59.