搜尋

首頁  >  問答  >  主體

javascript - JSON.stringify解析出來的字串取值為undefined

msg是一個物件

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

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

都印為:undefined

這是為什麼?

仅有的幸福仅有的幸福2826 天前931

全部回覆(6)我來回復

  • 我想大声告诉你

    我想大声告诉你2017-05-18 10:59:47

    descriptionMsg 已經是一個字串了,自然就不可能有 descriptionMsg.title;
    console.log(msg.title) 試試?

    回覆
    0
  • 怪我咯

    怪我咯2017-05-18 10:59:47

    雷雷

    回覆
    0
  • 黄舟

    黄舟2017-05-18 10:59:47

    JSON.stringify()用於從一個物件解析出字串

    回覆
    0
  • PHP中文网

    PHP中文网2017-05-18 10:59:47

    JSON.stringify(obj)傳入的是一個原生的對象,然後返回的是一個字串,使用JSON.stringify(obj).key當然就得不到值了,所以就是undefined,如果你想得到值可以直接用未轉換的原生物件obj.key,或JSON.parse(JSON.stringify(obj)).key將轉換得到的json字串再解析為原生物件。

    回覆
    0
  • 阿神

    阿神2017-05-18 10:59:47

    descriptionMsg是字串吧,又不是json格式的對象,你需要用JSON.parse轉一下。 JSON.stringify是將物件轉為字串的,你用反了。

    回覆
    0
  • 滿天的星座

    滿天的星座2017-05-18 10:59:47

    descriptionMsg是字串,所以需要先將字串轉換為對象,再存取對象的屬性:
    document.write(JSON.parse(descriptionMsg).title)

    回覆
    0
  • 取消回覆