Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] array a array asociativo y despues JSON

Estas en el tema de array a array asociativo y despues JSON en el foro de Javascript en Foros del Web. Hola Necesito su ayuda por favor, tengo la siguiente funcion: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function clip ( ) {     var ...
  #1 (permalink)  
Antiguo 19/08/2013, 09:55
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
array a array asociativo y despues JSON

Hola

Necesito su ayuda por favor, tengo la siguiente funcion:

Código Javascript:
Ver original
  1. function clip() {
  2.     var columns = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
  3.        
  4.     var clipText = window.clipboardData.getData('Text'); alert(clipText); //alert1
  5.     clipRows = clipText.split(String.fromCharCode(13)); alert(clipRows); //alert2
  6.     var clipCells = new Array();
  7.     for (i=0; i<clipRows.length; i++) {
  8.         clipCells[i] = clipRows[i].split(String.fromCharCode(9));
  9.     }
  10.     alert(clipCells); //alert3
  11.     myJsonString = JSON.stringify(clipCells);
  12.     alert(myJsonString); //alert4
  13. }

El primer alert me da como resultado:

Código:
1   5   9
2   6   10
3   7   11
4   8   12
Despues se supone que separo las filas con split donde encuente un \n (fromCharCode(13)), lo que el segundo alert me da:

Código:
1   5   9,
2   6   10,
3   7   11,
4   8   12,
Ahora por cada fila separo cada valor con split donde encuente un \t (fromCharCode(9)), el alert 3 me da:

Código:
1,   5,   9,
2,   6,   10,
3,   7,   11,
4,   8,   12,
Por ultimo convierto el arreglo a sintaxis json con JSON.stringify lo que el alert 4 me da:

Código:
[
["1","5","9"],
["\n2","6","10"],
["\n3","7","11"],
["\n4","8","12"],
["\n"]
]
Bueno aqui vienen mis problemas

Como quitar los \n del arreglo, intente con replace pero no me dio resultado.

Y en realidad el arreglo JSON que debe resultar es de la siguiente forma:

Código:
[
{"A":1,"B":5,"C":9},
{"A":2,"B":6,"C":10},
{"A":3,"B":7,"C":11},
{"A":4,"B":8,"C":12}
]


Soy medio novata en dominar arreglos, pero entiendo que primero debo quitar los \n y \t del arreglo y despues convertir de alguna forma mi arreglo en arreglo asociativo antes de aplicar el JSON.stringify verdad?

Podrian echarme la mano para convertir mi arreglo por favor de atenmano se los agradezco.
  #2 (permalink)  
Antiguo 19/08/2013, 11:27
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: array a array asociativo y despues JSON

Puedes eliminar los caracteres especiales primero

Código Javascript:
Ver original
  1. var clipText = window.clipboardData.getData('Text'); alert(clipText); //alert1
  2.  
  3. clipText=clipText .replace(/\n/g,'');//quitamos nueva linea (\n)
  4.  
  5. clipRows = clipText.split(String.fromCharCode(13));
  6. var clipCells = [];//declaramos el arregloclipCells
  7.     for (i=0; i<clipRows.length; i++) {
  8.         var fila = clipRows[i].split(String.fromCharCode(9));
  9.         clipCells.push({'A':fila[0],'B':fila[1],'C':fila[2]});//agregas un objeto
  10.     }
  11.  
  12. console.log(clipCells);
  #3 (permalink)  
Antiguo 19/08/2013, 11:41
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
Respuesta: array a array asociativo y despues JSON

Hola ocp001a!!!

Gracias como siempre por tu ayuda

Ya casi obtengo la salida que necesito, solo sobre un \n, el ultimo, no se porque con el replace no lo borra, mira esto sale:

Código:
[
{"A":1,"B":5,"C":9},
{"A":2,"B":6,"C":10},
{"A":3,"B":7,"C":11},
{"A":4,"B":8,"C":12},
{"A":""}
]
Pero ya es minimo detalle, seguire probando y les comento!
  #4 (permalink)  
Antiguo 19/08/2013, 11:43
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: array a array asociativo y despues JSON

Puedes hacer una comprobación para que la fila tenga las columnas que quieres

Código Javascript:
Ver original
  1. for (i=0; i<clipRows.length; i++) {
  2.         var fila = clipRows[i].split(String.fromCharCode(9));
  3.         if(fila.length==3)//si la fila tiene 3 elementos
  4.              clipCells.push({'A':fila[0],'B':fila[1],'C':fila[2]});//agregas un objeto
  5.     }
  #5 (permalink)  
Antiguo 19/08/2013, 18:31
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
Respuesta: array a array asociativo y despues JSON

hola, ya quedo

Muchas gracias ocp001a

al final mi validacion quedo asi:

if(fila.length>1)

y va muy bien

Etiquetas: asociativo, funcion, js, json
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 13:21.