본문 바로가기
개발(Development)/JS(자바스크립트)

[자바스크립트] TSV to JSON 변환 출력 파싱 방법(예제 코드 + node.js 파일 처리 포함)

by 카레유 2021. 3. 24.

CSV를 JSON로 파싱하는 방법(CSV to JSON)은 아래 링크 참고.

[자바스크립트] CSV to JSON 변환 출력 방법+샘플예제코드(node.js 파일 처리 포함)


| Javascript: TSV를 JSON으로 변환하는 방법

TSV는 Tab Seperated Values의 약자로, 탭( \t )로 구분된 문자열을 말합니다.

 

각 열은 탭(\t)로 구분되고, 각 행은 줄바꿈(\r\n)으로 구분되기 때문에,

이를 이용하면 TSV를 JSON으로 파싱할 수 있습니다.

 

이 글에서는 별도 라이브러리 없이,

자바스크립트만으로 TSV를 JSON으로 만드는 법을 정리합니다.

(node 및 브라우저 환경 모두에서 작동)

 

"아래의 tsvToJSON() 함수에 TSV문자열을 넣어호출하면 됩니다."

(TSV파일을 다루는 예제도 샘플코드로 다룹니다.)


# TSV to JSON 함수 (TSV to JSON Converter)

: TSV 형식의 문자열(string)을 넣어 호출하면, JSON으로 변환하여 반환하는 함수입니다.

function tsvToJSON(tsv_string){

    // 1. 문자열을 줄바꿈으로 구분 => 배열에 저장
    const rows = tsv_string.split("\r\n");
    
    // 줄바꿈을 \n으로만 구분해야하는 경우, 아래 코드 사용
    // const rows = tsv_string.split("\n");
  

    // 2. 빈 배열 생성: TSV의 각 행을 담을 JSON 객체임
    const jsonArray = [];

  
    // 3. 제목 행 추출 후, 탭으로 구분 => 배열에 저장
    const header = rows[0].split("\t");

  
    // 4. 내용 행 전체를 객체로 만들어, jsonArray에 담기
    for(let i = 1; i < rows.length; i++){
  
        // 빈 객체 생성: 각 내용 행을 객체로 만들어 담아둘 객체임
        let obj = {};

        // 각 내용 행을 탭으로 구분
        let row = rows[i].split("\t");
  
        // 각 내용행을 {제목1:내용1, 제목2:내용2, ...} 형태의 객체로 생성
        for(let j=0; j < header.length; j++){
            obj[header[j]] = row[j];
        }
  
        // 각 내용 행의 객체를 jsonArray배열에 담기
        jsonArray.push(obj);
  
    }
    
    // 5. 완성된 JSON 객체 배열 반환
    return jsonArray;

    // 문자열 형태의 JSON으로 반환할 경우, 아래 코드 사용
    // return JSON.stringify(jsonArray);
}

 

주석으로 코드의 작동 원리를 상세하게 설명해 두었습니다.

 

실제 사용하는 방식은 아래 샘플 코드를 참고해 주시기 바랍니다.

(tsvToJSON 함수가 선언된 상태에서 사용해주세요)

 

# TSV to JSON 샘플 예제 코드

1. 기본: TSV문자열(string) to JSON으로 변환 예제

// 1. TSV 문자열 취득
const string_tsv = `제품명\t가격\t갯수\r\n대나무빨대\t1500\t10\r\n법랑커피잔\t15000\t20`;


// 2. tsvToJSON(TSV문자열) 함수 호출
const arr_json = tsvToJSON(string_tsv);


// 3. JSON 변환 결과 확인
console.log(arr_json);

/* 출력결과
  [
    { '제품명': '대나무빨대', '가격': '1500', '갯수': '10' },
    { '제품명': '법랑커피잔', '가격': '15000', '갯수': '20' }
  ]
*/

 

2. 파일 읽기: TSV파일 to JSON 변환 예제

node.js 환경에서 TSV파일을 읽어서 JSON으로 변환하는 방법입니다.(파일을 읽을 때, node.js의 fs 모듈 사용)

// 1. node.js의 fs모듈 추출
const fs = require('fs');


// 2. tsv파일 읽기
const file_tsv = fs.readFileSync('파일경로');


// 3. string으로 변환: fs로 읽은 Buffer를 문자열로 변환합니다.
const string_tsv = file_tsv.toString();


// 4. tsvToJSON(TSV문자열) 함수 호출
const arr_json = tsvToJSON(string_tsv);

 

3. 파일 쓰기: TSV문자열 to JSON 파일 생성 예제

node.js환경에서 TSV문자열을 JSON파일로 만드는 방법입니다.(파일 생성 시, node.js의 fs 모듈 사용)

// 1. node.js의 fs모듈 추출
const fs = require('fs');


// 2. TSV문자열 취득
const string_tsv = `제품명,가격,갯수\r\n대나무빨대,1500,10\r\n법랑커피잔,15000,20`;


// 3. JSON으로 변환
const arr_json = tsvToJSON(string_tsv);


// 4. JSON을 문자열로 변환
const string_json = JSON.stringify(arr_json);


// 5. file.json 파일로 쓰기
fs.writeFileSync('파일명.json', string_json);

TSV to JSON 변환 출력 방법 정리 끝!

 

CSV를 JSON로 파싱하는 방법(CSV to JSON)은 아래글을 참고하시기 바랍니다.

 

[자바스크립트] CSV to JSON 변환 출력 방법+샘플예제코드(node.js 파일 처리 포함)

 

 

 

 

댓글