반응형
JSON 구문 오류: '예상하지 않은 번호' 또는 'JSON.parse: 개체의 속성 값 뒤에 ' , 또는 '}'이(가) 있어야 합니다.'
$.ajax()를 사용하여 POST 요청에서 다음 응답을 받습니다.
{"command": 6,"log_size":50,"log":[
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 1047161877,"to": 0},
{"type": 30,"tag": " __START__","sensors": "00","ti": 0000011410,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0A","ti": 0000011411,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 0000011411,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 0000011412,"to": 0},
{"type": 30,"tag": " __START__","sensors": "00","ti": 1047215799,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0A","ti": 1047215799,"to": 0},
{"type": 30,"tag": " __START__","sensors": "00","ti": 1047218051,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 0000002598,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 1047068795,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 1047068796,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0A","ti": 1047071223,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 1047071224,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 1047071225,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0A","ti": 0000000010,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 0000000012,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0C","ti": 1047130533,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0A","ti": 0000000026,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0A","ti": 0000000180,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 0000000206,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "09","ti": 0000000212,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "08","ti": 0000000383,"to": 0},
{"type": 30,"tag": " __START__","sensors": "00","ti": 0000001562,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0A","ti": 0000001563,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 0000001564,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0D","ti": 1047161632,"to": 0},
{"type": 30,"tag": " __START__","sensors": "00","ti": 1047161875,"to": 0},
{"type": 30,"tag": "*NETEVENT*","sensors": "0B","ti": 1047161876,"to": 0}
],
"response":"ok"}
IE가 정상적으로 동작하는 경우는, 「Chrome」라고 표시됩니다."Syntax error: unexpected number"
파이어폭스에서 메시지는 다음과 같은 메시지가 표시됩니다."SyntaxError: JSON.parse: expected ',' or '}' after property value in object"
다양한 온라인 JSON 파서 및 검증기에서는 응답 형식이 정상인 것처럼 보이지만 Firefox 및 Chrome에서는 작동하지 않습니다.
왜 이런 일이 일어나는지 아세요?
숫자는 유의하지 않은 값으로 시작할 수 없습니다.0
.
이것은 무효입니다."ti": 0000011410
JSON.org 에서 :
소스에서 수정해야 하지만 수정할 수 없는 경우 JSON이 항상 이와 비슷하다고 가정할 때(문자열에는 숫자가 없음) regex를 사용하여 수정할 수 있습니다.
var obj = JSON.parse(str.replace(/ 0+(?![\. }])/g, ' '));
넌 여기서도 악마를 쓸 수 없어eval
왜냐면"0000011410"
는 옥탈로서 해석됩니다.
console.log(eval('({"ti": 0000011410})'));
출력
{ti: 4872}
이것은 왜 중요하지 않은 숫자로 시작하는 것을 금지하는 것이 안전하다고 생각했는지 설명할 수 있을 것이다.0
JSON에서.
json의 숫자 앞에 0을 제거합니다.
언급URL : https://stackoverflow.com/questions/15296196/json-syntax-error-unexpected-number-or-json-parse-expected-or-after
반응형
'programing' 카테고리의 다른 글
Wordpress 플러그인 업로드 양식이 헤드리스 브라우저에서 활성화되지 않음 (0) | 2023.03.29 |
---|---|
리액트 라우팅은 다른 URL 경로를 처리할 수 있지만 Tomcat은 404개의 사용 불가능한 리소스를 반환합니다. (0) | 2023.03.29 |
GSON을 사용한 JSON 파일 해석 (0) | 2023.03.29 |
개체를 인코딩 가능한 개체로 변환하지 못했습니다. (0) | 2023.03.29 |
React 라우터를 사용하여 프로그래밍 방식으로 탐색 (0) | 2023.03.29 |