예전에 json 파싱을 하다가 python의 경우 스트링 처리 시에 '과 " 구별 없이 사용이 가능해서 문제가 발생했던 적이 있다.
(당연히 json은 "만 가능한데, 별 생각없이 python으로 string 변환을 해서..)
근데 오늘 또 문제가 발생했다.
내 코드는 redis에서 가져온 값을 json으로 변환하는 것이었는데 평소엔 잘 작동하다가 테스트를 위해 다른 값들을 포함시키니 문제가 발생했다.
golang에선 json.Unmashal 함수를 사용해서 interface 형식의 데이터를 json으로 변환하는데 이 부분에서 문제가 발생했다.
에러 내용은
invalid character '1' after array element
변환하려는 값은 {"ids": [0123, 1234]} 형태였다.
아무리 봐도 특별히 문제가 없는데 왜 이런가 하고 열심히 알아본 결과는 json 에서 숫자는 0으로 시작하면 안 된다고 한다...
(그럼 에러 내용을 0 뒤에 다른 값이 나오면 안 된다고 알려주지...)
이유를 찾아보니 자바스크립트에선 0으로 시작하는 숫자는 8진수로 취급하기 때문이다.
그리고 json에선 공식적으론 8진수를 취급하지 않는 거라 파서마다 가능할 수도 있다고 한다.
'Programming > Tip&Informaion' 카테고리의 다른 글
[실수노트] AWS EMR clone 시 문제 (glue 설정) (0) | 2022.02.26 |
---|---|
[IntelliJ] 실수로 파일 및 폴더 이동 방지 (0) | 2022.02.11 |
[실수노트] crontab이 실행이 안 되나? 타임존 문제 (0) | 2021.09.28 |
[gradle] gradlew 사용 시 사용자 args 넘겨주기 (vm option) (0) | 2021.09.16 |
[실수노트] kafka consumer 무한 루프 (0) | 2021.09.10 |