nodejs 에서 fs 사용할때 질문입니다.

nodejs 에서 fs 사용할때 질문입니다.

QA

nodejs 에서 fs 사용할때 질문입니다.

본문


const fs = require('fs');
 
function load(filename) {
    const data = fs.readFileSync(filename,'utf8');   
    const dataArray = data.trim().split('\n') // 줄바꿈 제거        
        .map(JSON.parse); // json 으로.. 여기에서 오류 발생...
    return dataArray
}
filename = '/abc.json ';
const jsonArray = load(filename);

console.log(jsonArray[0]['id']); // 당연히 안찍힘.. ^^;;;
 
//abc.json 파일은 \n 이 포함되어져 아래처럼 되어져 있을때를 가정 합니다. 
{"id":"aaaa","name":"mansu"}
{"id":"bbbb","name":"kingkong"}

 

위의 코드를 보면 .map(JSON.parse); 이부분에서 에러가 발생하는데..

이 부분을 주석처리하고 돌리면 에러는 없지만 json 이 아니기 때문에 

원하는 부분의 콘솔 출력은 되지 않습니다. ^^;;;

 

혹시 몰라서 JSON 설치도 해보았는데..그건 아닌듯 합니다.

이유를 모르겠습니다.

 

//.map(JSON.parse);

주석처리후 전체를 콘솔 찍어보면 

{"id":"aaaa","name":"mansu"}\r',

{"id":"bbbb","name":"kingkong"}

 

이처럼 찍힙니다. \r 이거 때문일까요?

혹시나 해서 split('\r') 해봤지만 그대로 있더라구요..

혹시 아시는분 계실까요?


 

이 질문에 댓글 쓰기 :

답변 1

다음 코드가 도움이 될지 모르겠습니다.


const fs = require('fs');
 
function load(filename) {
    const data = fs.readFileSync(filename,'utf8');   
    //const dataArray = data.trim().split('\n') // 줄바꿈 제거
    //    .map(JSON.parse); // json 으로.. 여기에서 오류 발생...
    const tempdata = data.trim().replace(/\r?\n/g, ','); // 줄바꿈 제거
    const dataArray = JSON.parse('[' + tempdata + ']');
    return dataArray
}
filename = 'abc.json';
const jsonArray = load(filename);
console.log(jsonArray[0]['id']); // 당연히 안찍힘.. ^^;;;
 
//abc.json 파일은 \n 이 포함되어져 아래처럼 되어져 있을때를 가정 합니다. 
//{"id":"aaaa","name":"mansu"}
//{"id":"bbbb","name":"kingkong"}
답변을 작성하시기 전에 로그인 해주세요.
전체 123,758
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT