2010-11-09 27 views
69

Recibí un archivo JSON pero no sé cómo leerlo. ¿Hay un convertidor en el que pueda producir un buen archivo CSV para que pueda cargarse en MS Excel? No entiendo JSON, por lo que sería increíble que alguien escribiera un guión o me vincule a uno que hiciera el trabajo.Convertir formato JSON a formato CSV para MS Excel

Encontré algo cerca de http://json.bloople.net pero, desafortunadamente, es JSON a HTML.

Editar: jsonformat.com se acerca aún más, sin embargo, todavía no es CSV.

+0

hay una razón. CSV no es jerárquico/estructurado/bien formado, JSON/HTML/XML sí lo es. ¿solo quieres obtener una cadena masiva? (sin importarle el orden) – RPM1984

+6

Solo necesito algo que pueda leerse en un formato de tabla, pensé que usar CSV era el camino correcto, ya que puedo abrirlo en Excel y comenzar a editar los datos. – stockoverflow

+1

, vale la pena señalar que no todos los JSON se pueden convertir de manera confiable a CSV. Aquí hay algunos ejemplos de JSON que no pudieron: http://json.org/example.html Parece que la estructura del JSON con la que está trabajando es relativamente simple, sin embargo. – Amanda

Respuesta

64

No estoy seguro de lo que estás haciendo, pero esto irá de JSON a CSV usando JavaScript. Esto está usando el open source JSON library, así que simplemente descargue JSON.js en la misma carpeta donde guardó el código siguiente, y analizará el valor JSON estático en json3 en CSV y le pedirá que lo descargue/abra en Excel.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>JSON to CSV</title> 
    <script src="scripts/json.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
    var json3 = { "d": "[{\"Id\":1,\"UserName\":\"Sam Smith\"},{\"Id\":2,\"UserName\":\"Fred Frankly\"},{\"Id\":1,\"UserName\":\"Zachary Zupers\"}]" } 

    DownloadJSON2CSV(json3.d); 

    function DownloadJSON2CSV(objArray) 
    { 
     var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray; 

     var str = ''; 

     for (var i = 0; i < array.length; i++) { 
      var line = ''; 

      for (var index in array[i]) { 
       line += array[i][index] + ','; 
      } 

      // Here is an example where you would wrap the values in double quotes 
      // for (var index in array[i]) { 
      // line += '"' + array[i][index] + '",'; 
      // } 

      line.slice(0,line.Length-1); 

      str += line + '\r\n'; 
     } 
     window.open("data:text/csv;charset=utf-8," + escape(str)) 
    } 

    </script> 

</head> 
<body> 
    <h1>This page does nothing....</h1> 
</body> 
</html> 
+1

Lo sentimos, no es realmente un programador aquí ... ¿cómo 'uso' esto? – stockoverflow

+1

Lo siento ... por favor tengan paciencia conmigo ... ¿en qué programa pego este código? ¿Tiene que estar en el mismo directorio que los archivos JSON? – stockoverflow

+1

Esto es javascript, simplemente puede pegar esto en una página web y usarlo para convertir JSON a CSV ... Si desea guardarlo en un archivo, puede reemplazar "return str;" con "window.open (" data: text/csv; charset = utf-8, "+ escape (str);". – Zachary

2

Usar Python será una manera fácil de lograr lo que desea.

Te animo primero a Google, porque encontré uno que usaba Google.

"convert from json to csv using python" es un ejemplo.

+1

Nunca antes había usado Python, solo sé que es un lenguaje de programación, ¿alguna alternativa? – stockoverflow

+0

Usted mencionó anteriormente que podría convertir JSON a HTML. Excel puede abrir HTML. ¿Has probado eso? – Henrik

+0

El siguiente [artículo de EE] (http://www.experts-exchange.com/Programming/Languages/Scripting/Perl/A_10413-Using-Perl-to-preview-in-a-Web-Page-and-convert- a-JSON-document-into-a-Excel-workbook.html) está basado en Perl, pero puede brindarle algunas ideas, ya que exhibirá un archivo JSON como una cuadrícula basada en Dojo, o lo convertirá en XLS o XLSX. También hay una solución basada en Java [json2excel] (http://sourceforge.net/projects/json2excel/) disponible en sourceforge. – arober11

62

he creado un jsFiddle here basado en the answer given by Zachary. Proporciona una interfaz de usuario más accesible y también escapa de forma adecuada las comillas dobles dentro de las cadenas.

+1

Lo bifurqué para admitir pares clave-valor que faltan http://jsfiddle.net/gonzif/MfJPF/1/ Su primer objeto JSON se utiliza para definir las claves de columna. –

+1

son geniales, pero ninguno admite matrices json. por lo que no maneja [ \t { \t \t "Id": 1, \t \t "nombre de usuario": "Sam Smith", \t \t "Detalles": { \t \t \t "pelo": "rojo" , \t \t \t "ojos": "rojo" \t \t} \t}] – Dusty

+1

Además, al hacer clic en descarga entonces que empezar a descargar con el "download" de nombre de archivo por lo que no tiene extensión del archivo. Entonces, ¿podría decirme cómo puedo cambiar el nombre del archivo? – Jewel

1

Puede usar que el GIST, bastante fácil de usar, almacena su configuración en el almacenamiento local: https://gist.github.com/4533361

+0

No entiendo lo que quiere que escriba en los cuadros "encabezado", "extraer elementos" o "Convertir elemento", ni lo que quiere que cambie en el código fuente. – Noumenon

Cuestiones relacionadas