Skip to content

:octocat: 오픈소스 라이브러리 프로젝트 (Open Source Library Project) / Open Source Project for Creating CSV Files with Kotlin

License

Notifications You must be signed in to change notification settings

hyunolike/json-csv-bridge

Repository files navigation

JsonCSVBridge

jitpack MIT json-csv-bridge
이너서클 1기 백엔트파트 장현호

Inner Circle BE 1기 오픈소스 라이브러리 프로젝트
백엔트파트 장현호

JSON에 맞춰 자동으로 CSV파일을 생성해주는 라이브러리 입니다.

🧑🏼‍🎨오픈소스 사용 모범사례 흐름도

image

🧑🏼‍🌾개발 일지


Features (7)

  • 기본. JSON 값 CSV 파일 변환 생성 🚀 개발완료
  • 커스텀 CSV 필드 매핑 ⚠️ 개발 미완료
    • 사용자가 JSON 필드를 CSV 열과 수동으로 매핑할 수 있도록 지원합니다. 예를 들어, JSON의 특정 필드를 CSV의 특정 열로 지정할 수 있습니다.
  • 데이터 검증 및 정제 ⚠️ 개발 미완료
    • JSON 데이터를 CSV로 변환하기 전에 데이터 타입, 필수 필드 확인, 누락된 값 처리 등을 검증하고 정제하는 기능을 추가합니다.
  • CSV 포맷 설정 ⚠️ 개발 미완료
    • CSV 파일의 구분자, 인코딩 방식, 행 구분자 등의 포맷을 사용자 정의할 수 있도록 지원합니다.
  • 데이터 필터링 및 선택적 변환 ⚠️ 개발 미완료
    • JSON의 특정 필드만 변환하거나, 특정 조건을 만족하는 데이터만 필터링하여 변환하는 기능을 제공합니다.
  • 병합 및 합치기 🚀 개발완료
    • 여러 JSON 파일을 하나의 CSV 파일로 병합하거나, JSON 데이터를 기존 CSV 파일에 추가하는 기능을 제공합니다.
  • 변환 후 후처리 작업 ⚠️ 개발 미완료
    • 변환 후 CSV 파일에 대해 추가적인 후처리 작업(예: 특정 열 삭제, 추가, 순서 변경)을 할 수 있는 기능을 제공합니다.

Dependencies

Depends on:

  • Java 21
  • Kotlin 1.9
  • Spring Boot 3.3

Include in your project

//Add it in your root build.gradle at the end of repositories:
repositories {
  mavenCentral()
  maven { url 'https://jitpack.io' }
}

//Add the dependency
dependencies {
        implementation 'com.github.hyunolike:json-csv-bridge:Tag'
        //implementation("com.github.hyunolike:json-csv-bridge:v1.0.0")
}

Usage

예제샘플 바로가기

1️⃣ 기본. JSON 값 CSV 파일 변환 생성

val outputDir = File("csv_output").apply { mkdirs() }
val jsonOutputPath = outputDir.resolve("output_json.csv").absolutePath

 // JSON to CSV
// 기능1. JSON 형식 문자열 CSV 파일로 변환
val jsonCreator = generateCsv("json") 🚀

// JSON to CSV
val jsonInput = """
    [
        {"name": "Hyunho", "age": 30, "city": "New York"},
        {"name": "Bob", "age": 25, "city": "Los Angeles"},
        {"name": "Charlie", "age": 35, "city": "Chicago"}
    ]
"""

jsonCreator.createCsv(jsonInput, jsonOutputPath)
println("JSON to CSV conversion completed. File saved at: $jsonOutputPath")

2️⃣ 병합 및 합치기

val outputDir = File("csv_output").apply { mkdirs() }
val mergeJsonOutputPath = outputDir.resolve("output_merge_json.csv").absolutePath

 // 기능2. 2개 JSON 형식 문자열 CSV 파일로 변환
val mergeJsonCreator = generateMergeCsv() 🚀

val data1 = """
    [
        {"name": "John", "age": 30, "city": "New York", "country": "USA"}
    ]
"""
val data2 = """
    [
        {"name": "Alice", "age": 25, "city": "London", "occupation": "Engineer"},
        {"name": "Bob", "age": 35, "city": "Paris", "hobby": "Photography"}
    ]
"""

mergeJsonCreator.createMergedCsv(data1, data2, mergeJsonOutputPath)
println("Merged 2 JSON files and converted to CSV. File saved at: $mergeJsonOutputPath")

Learn more about JsonCSVBridge

Get Involved

About

:octocat: 오픈소스 라이브러리 프로젝트 (Open Source Library Project) / Open Source Project for Creating CSV Files with Kotlin

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages