자바 스크립트에서 문자열이 있습니다 :JSON을 구문 분석하는 동안이 구문 오류의 원인은 무엇입니까?
var test = '{"test":"\\-"}'
또는
형식의 SyntaxError가 발생합니다. "unexpected_token_number". "test"
속성 값은 사용자가 입력 할 수있는 필드입니다. 이 필드를 어떻게 올바르게 벗어나야합니까?
자바 스크립트에서 문자열이 있습니다 :JSON을 구문 분석하는 동안이 구문 오류의 원인은 무엇입니까?
var test = '{"test":"\\-"}'
또는
형식의 SyntaxError가 발생합니다. "unexpected_token_number". "test"
속성 값은 사용자가 입력 할 수있는 필드입니다. 이 필드를 어떻게 올바르게 벗어나야합니까?
'{"test":"\\-"}'
은 결과 문자열이 {"test":"\-"}
인 JavaScript 문자열로 해석됩니다. 당신이 these diagrams에서 볼 수 있듯이
는 \-
는 (유효은 \"
, \\
, \/
, \b
, \f
, \n
, \r
, \t
, \uxxxx
) 유효한 이스케이프 시퀀스가 아닙니다. 당신은 JSON에서 두 개의 백 슬래시를 원하는 경우
JSONLint은 또한 당신이로 끝날 것 때문에뿐만 아니라, 자바 스크립트 문자열을 탈출해야 오류
Parse error on line 2:
{ "test": "\-"}
-------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
을 제공
var test = '{"test": "\\\\-"}';
그렇지 않으면 다음을 생략하십시오.
var test = '{"test": "-"}';
테스트의 가치는 무엇입니까? \
은 JavaScript에서 이스케이프 문자입니다. 여기
var test = '{"test":"\\\\-"}'
//Result: { test="\-"}
당신은 이동 :
var test = '{"test":"\-"}'
JSON.parse(test)
은 당신이 원하는 무엇인가요 당신이 그것을 탈출하려는 당신이
\-
로 시험의 값을 원하는,이 작동한다고 가정하면? 가질 수 :
{test: "-"}
?
Otherwiste :
var test = '{"test":"\\\\-"}'
JSON.parse(test)
이 가지고 : {test:"\-"}
건배
귀하의 JSON은 다음과 같습니다 문자열 내부
{
"test": "\-"
}
하는 \
문자 must be followed by"
,에게 물음표가 16 진수를 나타내는 경우, r
, t
또는 u????
입니다.
{
"test": "\\-"
}
을 제대로 자바 스크립트 문자열로 변환하는 데 실패하지만, 자바 스크립트에 대한 \
문자를 이스케이프되지 않습니다
당신은 아마 JSON는 다음과 같이하고자합니다.
var test = '{"test":"\\\\-"}'
해당 문자열을 구문 분석하려고하면 "나쁜 이스케이프 문자"가 표시됩니다.
이스케이프가 필요없는 문자를 이스케이프 처리하는 이유가 여기에 있습니다. 문자열 리터럴의 \\
은 이스케이프 된 백 슬래시이므로 이스케이프 코드 \-
이 문자열에 포함됩니다. 대시는 이스케이프가 필요하지 않으므로 이스케이프 코드가 JSON 파서에서 허용되지 않습니다.
var test = '{"test":"\\\\-"}'
, 내가 먼저 내 JSON을 stingified 다음 구문 분석 : 당신은 JSON에서 탈출 백 슬래시를 넣어하려는 경우
당신은 리터럴 문자열에 넣어 그것을 탈출해야 그것. –