게시판 boardId, postId 64비트 부동 소수점 형식으로 인한 문제
게시판 API 가 필요한 상황인데
64비트 부동 소수점 형식으로 인식해
응답 받을때 boardId, postId 둘다 ID뒤에 숫자가 000 으로 바뀌어서 나오네요.
이거 해결하신분 있으신가요~?
{
"boardId": 5000000001203670000,
"postId": 5070000000142597000,
"title": "테스트 게시판",
"readCount": 39,
"commentCount": 1,
"fileCount": 0,
"createdTime": "2024-06-26T16:33:52+09:00",
"modifiedTime": "2024-06-26T16:33:52+09:00",
"userId": "ba0fa8d4-4ab9-325c-1dd0-1344a9edbn15",
"userName": "테스터",
"mustReadPeriod": {
"startDate": null,
"endDate": null
},
"isMustRead": false,
"resourceLocation": null,
"isUnread": true
},
이렇게 응답 받고 해당 postId로 API 날리면 에러 날라옵니다...
이렇게 응답 받고 해당 postId로 API 날리면 에러 날라옵니다...
게시글에 새로운 댓글이 달리면 알림을 전송합니다.
댓글1
업데이트 된 답글입니다.
김링크 작성자
해당 문제는 json parse 하는 과정에서 생기는 문제였습니다.
1. axios에서 옵션 추가
axios에서부터 응답을 받을때 json parse가 발생하는것 같습니다.
이걸 해결하기 위해 axios에 옵션을 추가 했습니다.
`const response = await axios.get(url, { headers, responseType: 'text' });`
이렇게 하게 되면 응답 받을때 full-text로 받아서 데이터의 손실 없이 받을수 있었습니다.
2. json-bigint 라이브러리 사용
데이터를 받고 나서도 어쨋든 해당 데이터를 parsing해주는 과정은 필요합니다.
이때도 데이터 손실이 발생할수 있습니다.
제 문제는 너무 큰 숫자에서 발생하는 문제 이므로 json-bigint 라이브러리를 사용했습니다.
해당 라이브러리 설치후
function parseJSONPreservingBigIntAsString(jsonString) {
return JSONbig({ storeAsString: true }).parse(jsonString);
}
이 함수를 만들어서 Int 가 String 형태로 들어가도록 하였습니다.
유사한 에러에 도움되시길 바랍니다.
2024.07.16
궁금한 점을 해결하지 못하셨나요?
지금 바로 NAVER WORKS 사용자들에게 물어보세요!