IT 개발/개념 정리
2026. 1. 8. 18:05
CSVParser, JSONParser 차이 및 학습
CSVParser, JSONParser를 공부하게 된 배경
CSVParser를 이용해서 csv파일을 객체로 변환하려고 하고 있었음.. 할 수 있는 방법이 없고 뭔가 잘못됐다는걸 깨닫게 됨. CSV파일의 특성을 간과한채 무턱대고 파싱하려고함.
| CSVParser | JSONParser | |
| 콤마 구분자로 이뤄져있는 csv파일 | 계층구조를 나타낼 수 있는 형태를 지닌 json파일 | |
| 특징 | 로그, 대용량 처리에 적합 | 타입, 객체 형태로 표현할 수 있어 API를 통한 데이터 전달에 유리 |
CSV는 데이터 전달 비용과 성능이 중요할 때 JSON은 데이터의 의미와 구조가 중요할 때 사용한다.
JSONParser는 대표적으로 3가지 종류가 있는데 json-simple, Jackson, Gson 그 중 json-simple은 경량 파서라 객체 매핑은 지원하지 않아 수동 매핑을 해야한다. 반면 Jackson, Gson은 자동 매핑이 가능해 실무에서 주로 사용하는 실무표준이다.
직렬화 : 객체나 데이터를 네트워크 전송, 파일 저장 등 연속적인 바이트 스트림 형태로 변환하는 과정
역직렬화 : 이 바이트 스트림을 다시 원래의 객체나 데이터로 복원하는 과정
Jackson을 이용해서 yaml파일의 json -> java 객체로 매핑하는 예시 코드
JsonFactory jsonFactory = JsonFactory.builder()
.enable(JsonReadFeature.ALLOW_JAVA_COMMENTS)
.build();
File file = new File(classLoader.getResource("address.yaml").getFile());
JsonParser jsonParser1 = jsonFactory.createParser(file);
final ObjectMapper mapper = new ObjectMapper();
List<Person> personList = mapper.readValue(jsonParser1, new TypeReference<ArrayList<Person>>(){});
personList.forEach(p -> {p.getName();});
[ {
"name": "wendy",
"phone": "01045678321",
"city": "seoul",
"email": "bababa@gmail.com"
}, {
"name": "wendy",
"phone": "01034567890",
"city": "la",
"email": "222i2k2@gmail.com"
},{
"name": "banana",
"phone": "01012345678",
"city": "ny",
"email": "abcdefg@gmail.com"
}
]
반응형
'IT 개발 > 개념 정리' 카테고리의 다른 글
| DB 개념 및 면접 내용 정리 (0) | 2026.01.08 |
|---|---|
| JAVA 면접 질문 공부 (0) | 2026.01.08 |
| 어려운 네트워크에 대해 공부해보자 (0) | 2025.02.04 |
| ngrinder를 이용한 성능 테스트 (0) | 2024.09.18 |
| kotlin에서 queryDSL 사용하기 (1) | 2024.07.05 |