Javascript 读取JSON消息的值

Javascript 读取JSON消息的值,javascript,json,Javascript,Json,我一直在努力编写几行简单易懂的Javascript代码。我已经将我的JSON字符串缩减为以后找到的字符串。代码中的第一个警报将生成以下消息: {“列表”:[{“文本”:“文本1”,“创建时间”:“日期1”},{“文本”:“文本2”,“创建时间”:“日期2”}]} 但是,第二个警报会在IE中生成以下错误: 错误:无法获取属性“0”的值:对象为null或未定义 var data = "{\"list\":[{\"text\":\"Text1\", \"created_at\":\"Date1\"},

我一直在努力编写几行简单易懂的Javascript代码。我已经将我的JSON字符串缩减为以后找到的字符串。代码中的第一个警报将生成以下消息:

{“列表”:[{“文本”:“文本1”,“创建时间”:“日期1”},{“文本”:“文本2”,“创建时间”:“日期2”}]}

但是,第二个警报会在IE中生成以下错误: 错误:无法获取属性“0”的值:对象为null或未定义

var data = "{\"list\":[{\"text\":\"Text1\", \"created_at\":\"Date1\"},{\"text\":\"Text2\", \"created_at\":\"Date2\"}]}";
alert(data);
alert(data.list[0].created_at);

有人知道我为什么会收到这个错误吗?

数据
是一个普通字符串;它没有任何属性

您希望将字符串中的JSON解析为Javascript对象:

var obj = JSON.parse(data);

数据
是一个普通字符串;它没有任何属性

您希望将字符串中的JSON解析为Javascript对象:

var obj = JSON.parse(data);

您使用的字符串具有Json格式,但不是Json本身

您应该使用以下选项:

var data = {"list":[{"text":"Text1", "created_at":"Date1"},{"text":"Text2", "created_at":"Date2"}]};
alert(data.list[0].created_at);
或使用:

var jsonData = JSON.parse(data);
alert(jsonData.list[0].created_at);

您使用的字符串具有Json格式,但不是Json本身

您应该使用以下选项:

var data = {"list":[{"text":"Text1", "created_at":"Date1"},{"text":"Text2", "created_at":"Date2"}]};
alert(data.list[0].created_at);
或使用:

var jsonData = JSON.parse(data);
alert(jsonData.list[0].created_at);

非常感谢。我最初是按照您的建议解析字符串的,但是得到了另一个错误。因此,我在后面的链接中找到了下面的答案,它似乎暗示了相反的情况,因此完全删除了解析。我想我没有正确地解释那个答案。我相信我最初的错误与JSON对象本身的格式有关。再次感谢。@JF0001:听起来你是在对对象而不是字符串调用
JSON.parse()
。谢谢。我最初是按照您的建议解析字符串的,但是得到了另一个错误。因此,我在后面的链接中找到了下面的答案,它似乎暗示了相反的情况,因此完全删除了解析。我想我没有正确地解释那个答案。我相信我最初的错误与JSON对象本身的格式有关。再次感谢您。@JF0001:听起来您是在对对象而不是字符串调用
JSON.parse()