¿Alguien tiene un código Java de muestra para convertir un documento JSON en un archivo XLS/CSV? Intenté buscar en Google pero fue en vano.Conversión de JSON a XLS/CSV en Java
Respuesta
Un documento JSON consiste básicamente en listas y diccionarios. No hay una manera obvia de mapear dicha estructura de datos en una tabla bidimensional.
Si el archivo JSON es una matriz plana, con todos los objetos con los mismos nombres de campo, se puede asignar a una tabla bidimensional. Ver la entrada de ejemplo de @ Sridhar. –
puede usar commons csv para convertir a formato CSV. o use POI para convertir a xls. si necesita ayuda para convertir a xls, puede usar jxls, puede convertir java bean (o list) en excel con el lenguaje de expresión.
Básicamente, el json doc tal vez es una matriz json, ¿verdad? entonces será lo mismo. el resultado será una lista, y usted solo escribirá la propiedad que desea visualizar en formato excel que será leída por jxls. Consulte http://jxls.sourceforge.net/reference/collections.html
Si el problema es que el json no se puede leer en la propiedad jxls excel, simplemente serialícelo primero en la colección de java bean.
¿Cómo asignaría '{'foo': {'bar': [1, 2, 3]}}' a una hoja de cálculo? –
Es por eso que dije, si el objeto json es json un solo objeto, no json array, el resultado será 1 fila en la hoja de cálculo. Si el objeto json es json array, las filas serán las mismas con el tamaño de la matriz json. Y 1 de nuevo, debe especificar qué propiedad desea escribir en esa hoja de cálculo. Si su ejemplo, si desea mostrar la barra (que el valor es una matriz), la columna se mostrará tal vez [email protected], pero es una matriz, a la derecha. Pero si el objeto es [{name: 'a', 'bar': [1,2,3]}, {name: 'b', 'bar': [2,3,4]}], y desea para mostrar solo el nombre, es factible, ¿verdad? – Jef
Solo puede convertir una matriz JSON en un archivo CSV.
Digamos, usted tiene un JSON como el siguiente:
{"infile": [{"field1": 11,"field2": 12,"field3": 13},
{"field1": 21,"field2": 22,"field3": 23},
{"field1": 31,"field2": 32,"field3": 33}]}
deja ver el código para convertir a csv:
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.json.CDL;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class JSON2CSV {
public static void main(String myHelpers[]){
String jsonString = "{\"infile\": [{\"field1\": 11,\"field2\": 12,\"field3\": 13},{\"field1\": 21,\"field2\": 22,\"field3\": 23},{\"field1\": 31,\"field2\": 32,\"field3\": 33}]}";
JSONObject output;
try {
output = new JSONObject(jsonString);
JSONArray docs = output.getJSONArray("infile");
File file=new File("/tmp2/fromJSON.csv");
String csv = CDL.toString(docs);
FileUtils.writeStringToFile(file, csv);
} catch (JSONException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Ahora usted tiene la CSV genera a partir de JSON.
Se debe tener este aspecto:
field1,field2,field3
11,22,33
21,22,23
31,32,33
La dependencia Maven era como,
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
</dependency>
respuesta
Gracias por este código, pero soy nuevo en Java y tengo problemas para hacerlo funcionar. Las variables 'jsonout' y' response' no están definidas. ¿Alguna idea? ¡Gracias de nuevo! – hhh
FileUtils.writeStringToFile (archivo, csv); está en desuso –
¿hay alguna otra manera que usar org.json.CDL? Parece que no puedo importar esa clase en mi proyecto de Android – keinabel
- 1. Conversión de objeto a JSON y JSON a objeto en PHP, (biblioteca como Gson para Java)
- 2. Conversión de texto a JSON
- 3. Conversión de Json Array a Java Array normal
- 4. Conversión Ir estructura a JSON
- 5. Conversión dinámica de XML a JSON
- 6. conversión de .NET DateTime a JSON
- 7. REST y JSON - cadena de conversión a matriz JSON
- 8. C++ Protobuf a/desde la conversión JSON
- 9. Conversión de JSON a instancia de modelo en Django
- 10. Conversión de largo a doble en Java
- 11. Conversión de Unicode a cadena en Java
- 12. Conversión de fecha a entero en Java
- 13. conversión de bytes a int en Java
- 14. conversión de RSS Para JSON
- 15. Conversión de variables JSON a minúsculas en C#
- 16. Clase JSON a Java
- 17. booleano conversión a Boolean en Java
- 18. Conversión de la matriz de resultados de PHP a JSON
- 19. jQuery AJAX JSON dataType Conversión
- 20. Conversión de tipo de C a Java
- 21. JAVA: GMT a conversión de hora local
- 22. Java: inetaddress a la conversión de cadena
- 23. Java flotante de conversión a entero
- 24. Conversión de archivo plano a objetos Java
- 25. Conversión de código Delphi a Java
- 26. Conversión de objetos XML a Java
- 27. Conversión de codificación en java
- 28. Pregunta de conversión de objetos JSON
- 29. Chrome sendRequest error: TypeError: Conversión de estructura circular a JSON
- 30. conversión de corriente de int a char de java en
Ver Matt York aquí: http://stackoverflow.com/questions/662859/convert-csv -xls-to-json – JMax
Está pidiendo Json para CSV ... no de otra manera. –