Arlet09 :
나는 변환 할 JSON
에 파일을 CSV
파일.
내 JSON
파일은에서 오는 DataBase
에 저장 Firebase
하고이 같은 구조를 가지고 :
{
"PATIENT" : {
"-LbhwHC7Y6_umc" : {
"age" : 31,
"name" : "Phoebe"
},
"-LbhwTFJ6xjEf" : {
"age" : 20,
"name" : "Amy"
},
"-LbhxUmJ_dwIC" : {
"age" : 28,
"name" : "Joe"
}
}
}
나는 그것을 할 노력하고있어 Gson
:
package Parser;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import com.google.gson.Gson;
public class Main {
public static void main(String[] args) {
Gson gson = new Gson();
try {
BufferedReader br = new BufferedReader(
new FileReader("c:\\file.json"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
내 문제는 내가 만드는 방법을 모르겠입니다 JSON
같은 임의 필드 개체를 :
"-LbhwHC7Y6_umc", "-LbhwTFJ6xjEf"와 "-LbhxUmJ_dwIC"
중포 기지 의해 생성
마이클 Ziober :
사용하여 Jackson
라이브러리를 당신은 이미 매퍼가 JSON
와 CSV
하나의 라이브러리입니다. 당신 읽고 간단한 예 JSOn
와 생성 CSV
:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SequenceWriter;
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
import java.io.File;
import java.io.IOException;
public class JsonApp {
public static void main(String[] args) throws Exception {
File jsonFile = new File("./resource/test.json").getAbsoluteFile();
// read JSON
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(jsonFile);
JsonNode patient = root.get("PATIENT");
// Write CSV
CsvMapper csvMapper = new CsvMapper();
CsvSchema schema = CsvSchema.builder()
.addColumn("age", CsvSchema.ColumnType.NUMBER)
.addColumn("name")
.setUseHeader(true)
.build();
try (SequenceWriter sequenceWriter = csvMapper.writer().with(schema).writeValues(System.out)) {
patient.elements().forEachRemaining(node -> {
try {
sequenceWriter.write(node);
} catch (IOException e) {
throw new IllegalStateException(e);
}
});
}
}
}
인쇄물:
age,name
31,Phoebe
20,Amy
28,Joe
일반적으로, 당신이 임의의 키가있을 때 JSON
페이로드를 당신은 그것을 deserialise 수 Map<String, Object>
있는 Jackson
및 Gson
라이브러리.
끄트머리를 참조하십시오 :