我正在从我的控制器向我的视图页面发送一个JSON编码数组。我在我的视图页面上执行此操作以获取数据:
function () {
$.get('http://localhost/Location/loc', function(data){
alert(data[0].message);
});
}
数据就像这样
{"message":"hello!"}
我正在提醒消息的价值但是我的警报给了我undefined
。我的问题是如何访问JSON数组的值?
我是JSON的新手,所以我对JSON了解不多。
答案 0 :(得分:1)
您的数据包含单个对象,而不是数组。
在您的情况下,请改用alert(data.message);
。
使用[]
括号定义数组,例如[{message:"hello"}, {message:"world"}]
是一个包含两个对象的数组。
答案 1 :(得分:1)
尝试将您的功能更改为:
function () {
$.get('http://localhost/Location/loc', function(data){
alert(data.message);
}, 'json');
}
这是因为jQuery可能不知道响应数据是JSON,所以假设它是纯文本。您可以在$.get
中将其显式指定为修订代码中的最后一个参数,或者将服务器配置为使用{Content}类型标头application/json
发送响应。
我假设这是因为message
不是字符串的属性,这就是你未定义的原因。
或者,您可以使用$.getJSON
:
function () {
$.getJSON('http://localhost/Location/loc', function(data){
alert(data.message);
});
}
另请注意,我已将警报更改为data.message
。请参阅Knaģis的答案进行解释。
答案 2 :(得分:0)
好的,如果这不起作用:
function () {
$.get('http://localhost/Location/loc', function(data){
alert(data.message);
});
}
试试这个:
function () {
$.get('http://localhost/Location/loc', function(data){
alert(data.message);
}, 'json');
}