Konvertieren von CSV in JSON

Konvertieren von CSV in JSON

Aspose.Cells unterstützt die Konvertierung von CSV in JSON. Dafür bietet die API die Klassen ExportRangeToJsonOptions und JsonUtility. Die Klasse ExportRangeToJsonOptions bietet Optionen für den Export des Bereichs in JSON. Die Klasse ExportRangeToJsonOptions hat die folgenden Eigenschaften.

  • ExportAsString: Exportiert den Zeichenfolgenwert der Zellen in JSON.
  • HasHeaderRow: Gibt an, ob der Bereich eine Kopfzeile enthält.
  • Indent: Gibt die Einrückung an.

Die Klasse JsonUtility exportiert das JSON unter Verwendung der Exportoptionen, die mit der Klasse ExportRangeToJsonOptions festgelegt sind.

Der folgende Codeausschnitt zeigt die Verwendung der Klassen ExportRangeToJsonOptions und JsonUtility zum Laden der Quell-CSV-Datei und zum Ausgeben des JSONs in die Konsole.

Beispielcode

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Source directory
String sourceDir = Utils.Get_SourceDirectory();
LoadOptions loadOptions = new LoadOptions(LoadFormat.CSV);
// Load CSV file
Workbook workbook = new Workbook(sourceDir + "SampleCsv.csv", loadOptions);
Cell lastCell = workbook.getWorksheets().get(0).getCells().getLastCell();
// Set ExportRangeToJsonOptions
ExportRangeToJsonOptions options = new ExportRangeToJsonOptions();
Range range = workbook.getWorksheets().get(0).getCells().createRange(0, 0, lastCell.getRow() + 1, lastCell.getColumn() + 1);
String data = JsonUtility.exportRangeToJson(range, options);
// Print JSON
System.out.println(data);

Konsolenausgabe

[
{
"id": 1,
"language": "Java",
"edition": "third",
"author": "Herbert Schildt",
"streetAddress": 126,
"city": "San Jone",
"state": "CA",
"postalCode": 394221
},
{
"id": 2,
"language": "C++",
"edition": "second",
"author": "EAAAA",
"streetAddress": 126,
"city": "San Jone",
"state": "CA",
"postalCode": 394221
},
{
"id": 3,
"language": ".Net",
"edition": "second",
"author": "E.Balagurusamy",
"streetAddress": 126,
"city": "San Jone",
"state": "CA",
"postalCode": 394221
}
]