JSON响应具有指定行时的Javascript警报
我试图构建一个从服务器获取JSON的应用程序,然后在JSON响应指定行时显示javascript警报。我从服务器获取的JSON如下所示:JSON响应具有指定行时的Javascript警报,javascript,json,alert,Javascript,Json,Alert,我试图构建一个从服务器获取JSON的应用程序,然后在JSON响应指定行时显示javascript警报。我从服务器获取的JSON如下所示: { "key": [ { "IND": "406", "NUMBER": "9", "MESSAGE": "this is a test", "status": "ok" } ] } 这是我用来显示警报的代码: fu
{
"key": [
{
"IND": "406",
"NUMBER": "9",
"MESSAGE": "this is a test",
"status": "ok"
}
]
}
这是我用来显示警报的代码:
function UpdateRecord(update_id) {
var id = getUrlVars()["id"];
jQuery.ajax({
type: "POST",
url: serviceURL + "test.php",
data: 'id=' + id,
cache: false,
success: function(data) {
if (data.status == 'ok') {
alert(data.message);
} else {
alert("no");
}
}
});
}
但是,即使JSON有一行“状态”,此代码也会提示“否”:“确定”尝试使用if(data.key[0].status)
,并将警报(data.message)
替换为警报(data.key[0].message)
。你必须小心资本化 尝试使用if(data.key[0].status)
,并将警报(data.message)
替换为警报(data.key[0].message)
。你必须小心资本化 在成功处理程序中执行console.log(data)
,查看数据是什么。您将看到没有数据。状态
,而是数据。键[0]。状态
在成功处理程序中执行控制台。日志(数据)
,以查看数据是什么。您将看到没有数据。状态
,而是数据。键[0]。状态
您的jSON中定义了“键”,所以不是吗
if(data.key[0].status == "ok")
在jSON中定义了“key”,不是吗
if(data.key[0].status == "ok")
@用户:如果您查看引用的JSON,请将
data
视为指向整个内容。因此,Cyrille指出,您要查找的status
属性位于data.key[0]。status
。而且所有JavaScript属性名称都区分大小写,因此message
与message
@user不匹配:如果您查看引用的JSON,请将数据
视为指向整个内容。因此,Cyrille指出,您要查找的status
属性位于data.key[0]。status
。而且所有JavaScript属性名称都区分大小写,因此message
与message
不匹配。上面的json就是返回的吗?log()是调试javascript的最佳方法,因为它将打印到浏览器控制台,您应该在不同点打印出来,以确保获得正确的响应/变量。使用JSON,假设变量名是第一个大括号的链接,然后您必须一步一步地通过每个级别来获得所需的内容。data={key…},data.key=[{status…}],data.key[0]={status…}等等,这与我从服务器得到的响应完全相同。我使用了console.log(data)
并将其粘贴到JSON验证器中,它是一个有效的JSON。我刚刚将上面的JSON复制到google chrome控制台上的一个var中,并运行了data.key[0]。status;它返回“ok”。还有一些事情正在发生,上面的回答建议将数据类型JSON添加到请求中,试试看,否则可能是打字错误或类似的东西,因为它对我有用,如果你有chrome(它的控制台非常适合测试几行代码),我必须添加一个头('Content-Type:application/JSON')在我对PHP文件进行json_编码之前,将其编码为>。现在它工作得很好,谢谢你的帮助!上面的json是否正是返回的内容?log()是调试javascript的最佳方法,因为它将打印到浏览器控制台,您应该在不同点打印出来,以确保获得正确的响应/变量。使用JSON,假设变量名是第一个大括号的链接,然后您必须一步一步地通过每个级别来获得所需的内容。data={key…},data.key=[{status…}],data.key[0]={status…}等等,这与我从服务器得到的响应完全相同。我使用了console.log(data)
并将其粘贴到JSON验证器中,它是一个有效的JSON。我刚刚将上面的JSON复制到google chrome控制台上的一个var中,并运行了data.key[0]。status;它返回“ok”。还有一些事情正在发生,上面的回答建议将数据类型JSON添加到请求中,试试看,否则可能是打字错误或类似的东西,因为它对我有用,如果你有chrome(它的控制台非常适合测试几行代码),我必须添加一个头('Content-Type:application/JSON')在我对PHP文件进行json_编码之前,将其编码为>。现在它工作得很好,谢谢你的帮助!