이스케이프된 JSON 문자열을 수정하는 방법(JavaScript)
리모트 서버(관리 불능)는, 모든 필드명과 값이 이스케이프 된 JSON 문자열을 송신합니다.예를 들어 JSON.stringify(res)를 실행하면 다음과 같은 결과가 나타납니다.
"{\"orderId\":\"123\"}"
alert(res.orderId)를 실행하면 정의되지 않음으로 표시됩니다.탈출한 's'들 때문인 것 같아요이거 어떻게 고쳐야 돼요?
그것이 실제 표시된 값이라고 가정하고 다음 사항을 고려합니다.
twice_json = '"{\\"orderId\\":\\"123\\"}"' // (ingore the extra slashes)
json = JSON.parse(twice_json) // => '{"orderId":"123"}'
obj = JSON.parse(json) // => {orderId: "123"}
obj.orderId // => "123"
JSON.stringify를 에 적용하는 방법에 주의해 주세요.json
값(JSON이 텍스트인 것처럼 문자열)에 따라twice_json
가치. 그 사이의 관계를 더 고려하라.obj
(JavaScript 객체) 및json
(JSON 문자열).
즉, 게시물에 표시된 결과가 다음과 같은 출력일 경우JSON.stringify(res)
res는 이미 JavaScript 객체가 아닌 JSON(텍스트/문자열)이므로 이미 JSON 값으로 stringify를 호출하지 마십시오.대신, 사용obj = JSON.parse(res); obj.orderId
위의 데모/시위에 따라 주십시오.
받아들여진 답변은 나에게 효과가 없다.사용하고 있다
json = json.replace(/\\/g,"");
let arrayObj = JSON.parse(json);
실제로는 JSON.stringufy를 실행하는 오브젝트입니다.
var jsonString = "{\"orderId\":\"123\"}";
var jsonObject = JSON.parse(jsonString);
console.log(jsonObject.orderId);
아니면 그것보다 더 단순하게
var jsonObject = JSON.parse("{\"orderId\":\"123\"}");
console.log(jsonObject.orderId);
JSON.parse를 사용하셔도 됩니다.저는 API가 어떤 것을 반환하는지 잘 모르기 때문에 대안을 드릴 수 없습니다.
var res = "{\"orderId\":\"123\"}";
res = JSON.parse(res);
alert(res.orderId);
json.orderId를 사용할 수 없는 데이터를 문자열화해야 합니까? json 문자열을 전송해야 합니까? json이 이미 문자열에 있는 경우 문자열화를 수행할 필요가 없습니다.크롬 디버거 또는 다른 브라우저 디버거가 있는 경우 var의 유형을 볼 수 있습니다.
언급URL : https://stackoverflow.com/questions/25721164/how-to-fix-an-escaped-json-string-javascript
'code' 카테고리의 다른 글
루트를 기준으로 디렉티브 templateUrl을 기술하고 있습니다. (0) | 2023.03.19 |
---|---|
왜 잭슨도 임시 멤버를 연재하는 거죠? (0) | 2023.03.19 |
servlet과 servlet의 차이점은 무엇입니까? (0) | 2023.03.19 |
Wordpress는 관리자에게 네이티브 날짜 선택 기능을 제공합니까? (0) | 2023.03.19 |
Spring Boot에서의 설정 순서 (0) | 2023.03.19 |