Java에서의 XLS/CSV로의 JSON 변환
JSON 문서를 XLS/CSV 파일로 변환하기 위한 Java 코드 샘플이 있습니까?구글에서 검색해 봤지만 소용이 없었어요.
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();
}
}
}
이것으로 JSON에서 CSV가 생성됩니다.
다음과 같이 표시됩니다.
field1,field2,field3
11,22,33
21,22,23
31,32,33
노예의존관계는 다음과 같았습니다.
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
</dependency>
2019년 12월 13일 갱신:
답변을 업데이트하면 복잡한 JSON 어레이도 지원할 수 있습니다.
import java.nio.file.Files;
import java.nio.file.Paths;
import com.github.opendevl.JFlat;
public class FlattenJson {
public static void main(String[] args) throws Exception {
String str = new String(Files.readAllBytes(Paths.get("path_to_imput.json")));
JFlat flatMe = new JFlat(str);
//get the 2D representation of JSON document
flatMe.json2Sheet().headerSeparator("_").getJsonAsSheet();
//write the 2D representation in csv format
flatMe.write2csv("path_to_output.csv");
}
}
의존관계 및 문서 세부사항은 링크에 있습니다.
commons csv를 사용하여 CSV 형식으로 변환할 수 있습니다.또는 POI를 사용하여 xls로 변환합니다.xls로 변환하기 위해 도우미가 필요한 경우 jxls를 사용하면 java bean(또는 목록)을 식언어로 Excel로 변환할 수 있습니다.
기본적으로 json doc은 json 배열일 수 있습니다.그렇기 때문에 똑같습니다.결과는 리스트가 됩니다.표시하고 싶은 속성을 jxls로 읽을 엑셀 형식으로 쓰면 됩니다.http://jxls.sourceforge.net/reference/collections.html 를 참조해 주세요.
jxls excel 속성에서 json을 읽을 수 없는 것이 문제라면 먼저 java bean 컬렉션에 직렬화하십시오.
JSON 문서는 기본적으로 목록과 사전으로 구성됩니다.이러한 데이터 구조를 2차원 테이블에 매핑하는 명확한 방법은 없습니다.
언급URL : https://stackoverflow.com/questions/7172158/converting-json-to-xls-csv-in-java
'programing' 카테고리의 다른 글
Oracle 클라이언트 설치 오류 - 경로가 너무 깁니다. (0) | 2023.03.06 |
---|---|
Yooman과 Angular JS를 사용하여 E2E 테스트와 유닛 테스트를 모두 자동화하려면 어떻게 해야 합니까? (0) | 2023.03.06 |
아바타에서 BuddyPress 활동 ID 가져오기 (0) | 2023.03.01 |
AngularJ: 모든 폼 오류 나열 (0) | 2023.03.01 |
서비스, 지침 및 모듈의 차이점은 무엇입니까? (0) | 2023.03.01 |