msg是一個物件
var descriptionMsg = JSON.stringify(msg);descriptionMsg印為:{"title":"aaaaaaa","image":"xxxxxx.png","content":"vvvvvvv"} 為一個string
但是document.write(descriptionMsg.title);或document.write(descriptionMsg['title']);
都印為:undefined
這是為什麼?
descriptionMsg 已經是一個字串了,自然就不可能有 descriptionMsg.title;console.log(msg.title) 試試?
雷雷
JSON.stringify()用於從一個物件解析出字串
JSON.stringify()
JSON.stringify(obj)傳入的是一個原生的對象,然後返回的是一個字串,使用JSON.stringify(obj).key當然就得不到值了,所以就是undefined,如果你想得到值可以直接用未轉換的原生物件obj.key,或JSON.parse(JSON.stringify(obj)).key將轉換得到的json字串再解析為原生物件。
descriptionMsg是字串吧,又不是json格式的對象,你需要用JSON.parse轉一下。 JSON.stringify是將物件轉為字串的,你用反了。
descriptionMsg是字串,所以需要先將字串轉換為對象,再存取對象的屬性:document.write(JSON.parse(descriptionMsg).title)
document.write(JSON.parse(descriptionMsg).title)
descriptionMsg 已經是一個字串了,自然就不可能有 descriptionMsg.title;
console.log(msg.title) 試試?
雷雷
JSON.stringify()
用於從一個物件解析出字串JSON.stringify(obj)傳入的是一個原生的對象,然後返回的是一個字串,使用JSON.stringify(obj).key當然就得不到值了,所以就是undefined,如果你想得到值可以直接用未轉換的原生物件obj.key,或JSON.parse(JSON.stringify(obj)).key將轉換得到的json字串再解析為原生物件。
descriptionMsg是字串吧,又不是json格式的對象,你需要用JSON.parse轉一下。 JSON.stringify是將物件轉為字串的,你用反了。
descriptionMsg是字串,所以需要先將字串轉換為對象,再存取對象的屬性:
document.write(JSON.parse(descriptionMsg).title)