如何使用javascript获取内部对象的文字值

时间:2014-03-27 14:41:43

标签: javascript

调用console.log(JSON.stringify(req.params))后,我得到一个包含以下结构的字符串:

{"q":"{\"email\":\"mymail@mail.com\"}","apiKey":"1234"}

使用console.log(req.params.q),我得到了这样的结果:{"email":"mymail@mail.com"}。 但我明白了#34;未定义"如果我尝试使用console.log(req.params.q.email)console.log(req.params.q["email"])查看电子邮件值 获得这个价值的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

您必须JSON.parse内部部分:

var test = {"q":"{\"email\":\"mymail@mail.com\"}","apiKey":"1234"};
alert(JSON.parse(test.q).email);

提醒mymail@mail.com

<强>为什么吗

因为 test 包含一个javascript对象,其中 q 包含字符串,所以如果要提取JSON,则必须解析该字符串来自该字符串的值。

答案 1 :(得分:1)

看起来req.params.q是一个字符串:"{\"email\":\"mymail@mail.com\"}"

你需要解析那个json然后获取值。

req = {params: {"q":"{\"email\":\"mymail@mail.com\"}","apiKey":"1234"}}
JSON.parse(req.params.q)
> Object {email: "mymail@mail.com"}
JSON.parse(req.params.q).email
> "mymail@mail.com"