Подтвердить что ты не робот

Преобразование JSON в XLS/CSV в Java

Есть ли у кого-нибудь образец кода Java для преобразования документа JSON в файл XLS/CSV? Я попытался выполнить поиск в Google, но безрезультатно.

4b9b3361

Ответ 1

Вы можете преобразовать только массив JSON в файл CSV.

Допустим, у вас есть JSON, как показано ниже:

{"infile": [{"field1": 11,"field2": 12,"field3": 13},
            {"field1": 21,"field2": 22,"field3": 23},
            {"field1": 31,"field2": 32,"field3": 33}]}

Позволяет увидеть код для преобразования его в 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();
        }        
    }

}

Теперь вы получили CSV, сгенерированный из JSON.

Он должен выглядеть так:

field1,field2,field3
11,22,33
21,22,23
31,32,33

Зависимость maven была похожа:

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20090211</version>
</dependency>

Ответ 2

вы можете использовать commons csv для преобразования в формат CSV. или использовать POI для преобразования в xls. если вам нужен помощник для преобразования в xls, вы можете использовать jxls, он может преобразовать java bean (или список) в excel с языком выражения.

В принципе, json doc может быть json-массивом, не так ли? поэтому он будет таким же. результат будет списком, и вы просто напишите свойство, которое вы хотите отобразить в формате excel, который будет считаться jxls. См. http://jxls.sourceforge.net/reference/collections.html

Если проблема заключается в том, что json не может быть прочитан в свойстве jxls excel, сначала сначала его сериализуйте в коллекцию java bean.

Ответ 3

Документ JSON в основном состоит из списков и словарей. Нет очевидного способа сопоставления такой структуры данных на двумерной таблице.