어떻게 하면 php의 JSON 응답 내의 문자열 안에 큰따옴표를 넣을 수 있을까요?
서버로부터 Ajax 요청으로 JSON 응답을 받았습니다.다음과 같이 동작합니다.
{ "a" : "1", "b" : "hello" "filename" }
하지만 나는 키티 주위에 이중 따옴표를 넣는 데 성공하지 못했다.
Ajax 응답에서 "를 \x22로 변환해도 JavaScript에 의해 "로 해석되어 JSON을 해석할 수 없습니다.
또한 \를 탈출하고 나중에 unescape를 해야 합니까(가능합니다.
이거 어떻게 하는 거야?
편집: 잘 표현했는지 모르겠습니다.해석 후에 이 문자열을 "b" 안에 넣어야 합니다.
헬로 "hello" "hello"
필요에 따라 해석 후에 스텝을 추가하여 "b"를 변환할 수도 있습니다만, 그럴 필요는 없다고 생각합니다만, 이것이 자동적으로 이루어지도록 보다 우아한 방법이 있을까요?
Edit2: ajax 페이지는 php에 의해 생성됩니다.b의 값을 작성하기 위해 몇 가지 작업을 시도했지만 모두 페이지에 JSON 해석 오류가 발생했습니다.
$b = 'hello "kitty"';
// no 1:
//$b = str_replace('"',"\x22",$b);
// or no 2:
// $b = addslashes($b);
// or no 3:
$b = str_replace('"','\"',$b);
echo '{ "a" : "1", "b" : "' . $b . '"}';
편집 3: 이 솔루션은 드디어 기능합니다.
$b = 'hello "kitty"';
$b = str_replace('"','\\"',$b);
echo '{ "a" : "1", "b" : "' . $b . '"}';
백슬래시로 탈출하세요.
> JSON.stringify({"a": 5, "b": 'a "kitty" mighty odd'})
{"a":5,"b":"a \"kitty\" mighty odd"}
> JSON.parse('{"a":5,"b":"a \\"kitty\\" mighty odd"}')
Object
a: 5
b: a "kitty" mighty odd
__proto__: Object
JSON 파서는 인식합니다.\"
이중 따옴표로 묶은 문자열 안쪽을 지정합니다.두 번째 예에서는 Javascript 파서 패스가 있고 그 다음에 다른 JSON 파서 패스가 있기 때문에 이중 백슬래시가 필요합니다.
json_encode(PHP 요소)만 사용하면 자동으로 해석됩니다.
조금 다른 토픽으로, 서버상에서 JavaScript/NodeJs 를 사용하고, ES6 템플릿 리터럴("Christian" 주변에서 사용되는 "백트릭")을 사용할 수 있지만, 7년 후에는 이미 NodeJS 를 사용하고 있을 것입니다.
var myJSON = {
"name": {
"first": `"Christian"`,
"last": "Broberg"
},
"age": 49,
"skills": [ "JavaScript", "React", "NodeJS" ],
"married": false,
"superpowers": null
}
언급URL : https://stackoverflow.com/questions/2732409/how-can-i-put-double-quotes-inside-a-string-within-an-ajax-json-response-from-ph
'programing' 카테고리의 다른 글
각도 재료 레이아웃 - 창을 채우도록 확장 (0) | 2023.03.03 |
---|---|
리액트 앱에서 CSS 모듈을 사용하여 글로벌 스타일을 적용하는 방법은 무엇입니까? (0) | 2023.03.03 |
CLOB와 NCLOB의 차이점은 무엇입니까? (0) | 2023.03.03 |
Spring JPA 저장소의 여러 테이블 결과를 결합하는 방법 (0) | 2023.03.03 |
범위 $id로 DOM 요소 가져오기 (0) | 2023.03.03 |