0

我一直在努力处理几行应该很简单的 Javascript 代码。我已将我的 JSON 字符串缩减为以后找到的字符串。此后代码中的第一个警报会生成以下消息:

{"list":[{"text":"Text1", "created_at":"Date1"},{"text":"Text2", "created_at":"Date2"}]}

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

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

有人会理解我为什么会收到此错误吗?

4

2 回答 2

3

data是普通字符串;它没有任何属性。

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

var obj = JSON.parse(data);
于 2013-09-22T20:30:50.623 回答
1

您正在使用具有 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);
于 2013-09-22T20:39:06.007 回答