msg는 객체입니다
var DescriptionMsg = JSON.stringify(msg);
descriptionMsg는 다음과 같이 인쇄됩니다: {"title":"aaaaaaa","image":"xxxxxx.png","content":"vvvvvv"}는 문자열입니다
하지만
document.write(descriptionMsg.title);또는 document.write(descriptionMsg['title']);
모두 다음과 같이 인쇄됩니다: 정의되지 않음
이게 왜요?
descriptionMsg는 이미 문자열이므로 설명Msg.title을 갖는 것은 당연히 불가능합니다.
console.log(msg.title) 시도해 보세요.
으아아아
JSON.stringify()
객체에서 문자열을 구문 분석하는 데 사용됩니다JSON.stringify(obj)는 기본 개체를 전달하고 문자열을 반환합니다. 물론 JSON.stringify(obj).key를 사용하여 값을 얻을 수 없으므로 값을 얻으려면 정의되지 않습니다. 변환되지 않은 기본 개체 obj.key 또는 JSON.parse(JSON.stringify(obj)).key를 직접 사용하여 변환된 json 문자열을 기본 개체로 구문 분석할 수 있습니다.
descriptionMsg는 json 형식의 객체가 아닌 문자열입니다. 변환하려면 JSON.parse를 사용해야 합니다. JSON.stringify는 객체를 문자열로 변환하지만 사용자는 이를 다른 방식으로 사용했습니다.
descriptionMsg는 문자열이므로 먼저 문자열을 객체로 변환한 다음 객체의 속성에 액세스해야 합니다.
document.write(JSON.parse(descriptionMsg).title)