2017-12-21 43 views
0

버퍼를 내보내고 toString() 함수를 사용하여 node.js readstream을 사용하여 버퍼를 문자열로 변환 한 다음 문자열을 JSON으로 변환하려고 시도합니다. JSON.parse() 함수를 통해 구문 분석 오류가 발생합니다.node.js 버퍼를 문자열로 변환 한 다음 JSON으로 변환

버퍼를 문자열로 변환 한 다음 해당 문자열을 JSON으로 변환하는 가장 좋은 방법이 있습니까?

JSON 문자열은 다음과 같습니다

[{ "데이터 1": 1487328824948, "암호화"거짓 "버전": "1.0.0", "데이터 2": "값 2", "데이터 3" "value3", "data4": "value4", "data5": "value5"}, { "data1": 148732882448, "encrypt": false, "version": "1.0.0", "data2": "value2 ","data3 ":"value3 ","data4 ":"value4 ","data5 ":"value5 "} .........]

+0

당신이 문자열을 게시하시기 바랍니다 수 구성된 toString 변환은() 내가 문자열 – shivshankar

+0

는 tar.gz 파일 나와서 그것을 지속적으로 .on ('data') 리스너에서 JSON을 문자열처럼 스트리밍합니다. 문자열 변환에 버퍼를 사용하고 나서 JSON.parse를 통해 버퍼로 변환하여 객체로 변환하므로 파싱을 시작할 수 있습니다. tar.gz 크기가 꽤 크기 때문에 readSync가 여기서 도움이 될지 확실하지 않으며 프로세스 속도가 느려질 수도 있습니다. – Sai

답변

0

이 방법은 올바른 것처럼 보입니다. JSON.parse()를 호출하기 전에 readstream이 입력을 읽지 않는 것 같습니다. 따라서 JSON.parse() 호출은 JSON 문자열의 일부만 분석 한 다음 오류가 발생합니다.

read()가 완료되었는지 확인하십시오. readSync()을 사용 하시겠습니까?

+0

내가 여기서 다루고있어 readstream을 추가 @shivshankar – Sai

+0

나는 내가 게시 한 것과 비슷한 JSON 문자열을 tar.gz에서 계속 나오게했다. – Sai

0
var buf = Buffer.from(JSON.stringify(obj)); 
var temp = JSON.parse(buf.toString());