"예기치 않은 토큰 o"오류를 발생시키는 JSON 구문 분석
이 질문에는 이미 답변이 있습니다.
- "Uncaught SyntaxError : Unexpected token o" 8 개의 답변이 계속 표시됩니다.
간단한 JSON 문자열을 구문 분석하는 데 문제가 있습니다. JSONLint에서 확인한 결과 유효하다는 것을 보여줍니다. 그러나 JSON.parse
jQuery 대안이나 하나를 사용하여 구문 분석하려고 하면 오류가 발생합니다 unexpected token o
.
<!doctype HTML>
<html>
<head>
</head>
<body>
<script type="text/javascript">
var cur_ques_details ={"ques_id":15,"ques_title":"jlkjlkjlkjljl"};
var ques_list = JSON.parse(cur_ques_details);
document.write(ques_list['ques_title']);
</script>
</body>
</html>
참고 : json_encode()
PHP에서 사용하여 문자열을 인코딩하고 있습니다 .
귀하의 데이터는 이미 개체입니다. 파싱 할 필요가 없습니다. 자바 스크립트 인터프리터가 이미 해석했습니다.
var cur_ques_details ={"ques_id":15,"ques_title":"jlkjlkjlkjljl"};
document.write(cur_ques_details['ques_title']);
다음과 같이 구문 분석하십시오.
var yourval = jQuery.parseJSON(JSON.stringify(data));
사용 JSON.stringify(data);
:
$.ajax({
url: ...
success:function(data){
JSON.stringify(data); //to string
alert(data.you_value); //to view you pop up
}
});
그러나 오류의 원인은 전체 JSON 문자열을 따옴표로 묶어야한다는 것입니다. 다음은 샘플을 수정합니다.
<!doctype HTML>
<html>
<head>
</head>
<body>
<script type="text/javascript">
var cur_ques_details ='{"ques_id":"15","ques_title":"jlkjlkjlkjljl"}';
var ques_list = JSON.parse(cur_ques_details);
document.write(ques_list['ques_title']);
</script>
</body>
</html>
다른 응답자가 언급했듯이 객체는 이미 JS 객체로 구문 분석되므로 구문 분석 할 필요가 없습니다. 구문 분석하지 않고 동일한 작업을 수행하는 방법을 보여주기 위해 다음을 수행 할 수 있습니다.
<!doctype HTML>
<html>
<head>
</head>
<body>
<script type="text/javascript">
var cur_ques_details ={"ques_id":"15","ques_title":"jlkjlkjlkjljl"};
document.write(cur_ques_details.ques_title);
</script>
</body>
</html>
cur_ques_details
이미 JS 객체이므로 구문 분석 할 필요가 없습니다.
응답이 이미 파싱되었으므로 다시 파싱 할 필요가 없습니다. 다시 구문 분석하면 " unexpected token o
"가 표시됩니다. 문자열로 가져와야 할 경우 사용할 수 있습니다.JSON.stringify()
jQuery AJAX를 사용하여 데이터를 제출할 때 동일한 문제가 발생했습니다.
$.ajax({
url:...
success:function(data){
//server response's data is JSON
//I use jQuery's parseJSON method
$.parseJSON(data);//it's ERROR
}
});
응답이 JSON이고이 메소드를 사용하는 경우 얻는 데이터는 JavaScript 오브젝트이지만을 사용하는 dataType:"text"
경우 data는 JSON 문자열입니다. 그렇다면 사용 $.parseJSON
은 괜찮습니다.
나는이보고되었다 unexpected token o
내 (불완전한) 코드가 이전에 실행했기 때문에 (라이브 다시로드를!) 오류와에 특정 키 입력 로컬 스토리지 값을 설정 [object Object]
하는 대신 {}
. 키를 변경하기 전까지는 예상대로 작동하기 시작했습니다. 또는 다음 지시 사항에 따라 잘못 설정된 localStorage 값을 삭제할 수 있습니다 .
참고 URL : https://stackoverflow.com/questions/15617164/parsing-json-giving-unexpected-token-o-error
'Programing' 카테고리의 다른 글
매개 변수 이름 반영 : C # 람다 식 남용 또는 구문 광택? (0) | 2020.02.19 |
---|---|
Python을 사용하여 Selenium WebDriver에서 WebElement의 HTML 소스 가져 오기 (0) | 2020.02.19 |
LESS-CSS 덮어 쓰기 calc () 비활성화 (0) | 2020.02.19 |
<와>는 무엇을 의미합니까? (0) | 2020.02.19 |
ElasticSearch, Sphinx, Lucene, Solr, Xapian. (0) | 2020.02.19 |