javascript - JSON.stringify解析出來的字串取值為undefined
仅有的幸福
仅有的幸福 2017-05-18 10:57:47
0
6
926

msg是一個物件

var descriptionMsg = JSON.stringify(msg);
descriptionMsg印為:{"title":"aaaaaaa","image":"xxxxxx.png","content":"vvvvvvv"} 為一個string

但是
document.write(descriptionMsg.title);或document.write(descriptionMsg['title']);

都印為:undefined

這是為什麼?

仅有的幸福
仅有的幸福

全部回覆(6)
我想大声告诉你

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)

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板