Qualcuno ha un codice Java di esempio per convertire un documento JSON in un file XLS/CSV? Ho provato a cercare su Google ma inutilmente.Conversione da JSON a XLS/CSV in Java
risposta
Un documento JSON è costituito essenzialmente da elenchi e dizionari. Non esiste un modo ovvio per mappare tale datastructure su una tabella bidimensionale.
Se il file JSON è un array piatto, con tutti gli oggetti con gli stessi nomi di campo, può essere mappato su una tabella bidimensionale. Vedi l'input di esempio di Sridhar. –
è possibile utilizzare commons CSV per convertire in formato CSV. o usare POI per convertire in xls. se hai bisogno di aiuto per convertire in xls, puoi usare jxls, può convertire java bean (o lista) in excel con linguaggio di espressione.
Fondamentalmente, il documento json è forse un array json, giusto? quindi sarà lo stesso. il risultato sarà la lista, e tu scrivi la proprietà che vuoi mostrare in formato excel che verrà letta da jxls. Vedi http://jxls.sourceforge.net/reference/collections.html
Se il problema è che json non può essere letto nella proprietà excel jxls, serializzarlo prima nella raccolta di java bean.
Come dovresti mappare '{'foo': {'bar': [1, 2, 3]}}' a un foglio di calcolo? –
Ecco perché ho detto, se l'oggetto json è json single object, non json array, il risultato sarà 1 riga nel foglio di calcolo. Se l'oggetto json è array json, le righe saranno uguali alla dimensione dell'array json. E ancora una volta, devi specificare quale proprietà vuoi scrivere in quel foglio di calcolo. Se il tuo esempio, se vuoi visualizzare la barra (che è il valore dell'array), la colonna verrà visualizzata forse [email protected], ma è un array, giusto. Ma se l'oggetto è [{nome: 'a', 'bar': [1,2,3]}, {nome: 'b', 'bar': [2,3,4]}], e vuoi per visualizzare solo il nome, è fattibile, giusto? – Jef
È possibile convertire un array JSON in un file CSV.
Diciamo, si dispone di un JSON come il seguente:
{"infile": [{"field1": 11,"field2": 12,"field3": 13},
{"field1": 21,"field2": 22,"field3": 23},
{"field1": 31,"field2": 32,"field3": 33}]}
permette di vedere il codice per la conversione in formato 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();
}
}
}
Ora è ottenuto il CSV generato da JSON.
Esso dovrebbe essere simile a questo:
field1,field2,field3
11,22,33
21,22,23
31,32,33
La dipendenza Maven era come,
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
</dependency>
risposta di
Grazie per questo codice, ma sono nuovo di Java e ho problemi a farlo funzionare. Le variabili 'jsonout' e' response' non sono definite. Qualche idea? Grazie ancora! – hhh
FileUtils.writeStringToFile (file, csv); è deprecato –
c'è un altro modo di usare org.json.CDL? Mi sembra di non essere in grado di importare quella classe nel mio progetto Android – keinabel
- 1. Conversione da JSON a XML in Java
- 2. Conversione da JSON arbitrario nested a CSV in Java
- 3. conversione da xml a json android
- 4. Conversione da JSON nidificato a CSV
- 5. conversione da stringa a oggetto json android
- 6. Conversione da albero JSON a HTML
- 7. Conversione da Unicode a stringa in Java
- 8. Conversione da byte a int in java
- 9. Conversione da double a float in Java
- 10. Conversione BSON Tipo ObjectId a JSON (conservazione in MongoDB) -Java
- 11. Conversione da PDF a Postscript utilizzando Java
- 12. Conversione di tipo da C a Java
- 13. Conversione da app Android a Java Desktop
- 14. Conversione da oggetto Java a sottoclasse
- 15. Conversione da numero intero a Java
- 16. Conversione facoltativa da Guava a Java
- 17. Conversione da stringa a colore Java/Android
- 18. Conversione in formato Json Risposta da webservice
- 19. Conversione da JSON a CSV e CSV a JSON in C#
- 20. Conversione .NET DateTime a JSON
- 21. array int a json object in java
- 22. Oggetto JSON da stringa a Java Avro
- 23. Problemi nella conversione da XML a JSON utilizzando XSLT
- 24. Conversione personalizzata da JSON a XML utilizzando JSON.Net
- 25. Conversione JSON in avro
- 26. Conversione da lungo [64] a byte [512] in Java?
- 27. da doppio a lungo senza conversione in Java
- 28. Conversione da UTF-8 a ISO-8859-1 in Java
- 29. Conversione da modulo esponenziale a decimale in Java
- 30. conversione stringa da stringa a stringa in java
See Matt York qui: http://stackoverflow.com/questions/662859/convert-csv -xls-to-json – JMax
Chiede Json a CSV ... non in altro modo. –