使用javascript访问json

使用javascript访问json,javascript,jquery,json,Javascript,Jquery,Json,是的,这是“使用javascript访问json”的另一个例子。放纵我吧,我读了其余的答案,事件,没有帮助 我有以下代码 var display_order_message = function(res, status) { alert(res.status+' '+res.message+' '+res["message"]); }; $("#ticketform").submit( function(event) { data = {}; var args = {

是的,这是“使用javascript访问json”的另一个例子。放纵我吧,我读了其余的答案,事件,没有帮助

我有以下代码

var display_order_message = function(res, status) {
    alert(res.status+' '+res.message+' '+res["message"]);
};


$("#ticketform").submit( function(event) {
  data = {};
  var args = {
    type:"POST",
    url:"someurldoesntmatterhere",
    data:data,
    dataType:"json",
    success: somefunctionsheredontmattereither,
    complete: display_order_message
  };
  $.ajax(args);
  event.preventDefault();
});
现在,使用Firebug,我可以看到返回的json是

{"status": 200, "qa": [], "message": "order canceled", "qb": []}
上面代码中的警报将打印出来

200 undefined undefined
那么,为什么我可以访问.status而不能访问.message或[“message”]?如何访问该消息?

非常简单

var obj = {"status": 200, "qa": [], "message": "order canceled", "qb": []}
var message = obj.message;
var message2 = obj['message'];
这两种方法都很简单

var obj = {"status": 200, "qa": [], "message": "order canceled", "qb": []}
var message = obj.message;
var message2 = obj['message'];
这两种方法都很简单

var obj = {"status": 200, "qa": [], "message": "order canceled", "qb": []}
var message = obj.message;
var message2 = obj['message'];
这两种方法都很简单

var obj = {"status": 200, "qa": [], "message": "order canceled", "qb": []}
var message = obj.message;
var message2 = obj['message'];

这两项工作都在
success
arg中显示
命令消息,而不是
完成

目前,您的
res
变量是一个
jqXHR
,它也有一个
状态
子变量


请参见在
success
arg中放置
display\u order\u消息,而不是
complete

目前,您的
res
变量是一个
jqXHR
,它也有一个
状态
子变量


请参见在
success
arg中放置
display\u order\u消息,而不是
complete

目前,您的
res
变量是一个
jqXHR
,它也有一个
状态
子变量


请参见在
success
arg中放置
display\u order\u消息,而不是
complete

目前,您的
res
变量是一个
jqXHR
,它也有一个
状态
子变量



请参见

展开?如果var message=obj.message;有效,为什么不发出警报(obj.message);?对不起,我忘记了这个var result=eval(“(“+res+”)”)
eval
是为古代浏览器服务时使用的工具。如果您使用的是现代浏览器,则使用的是
JSON.parse
。如果您正在使用jQuery(这里就是这样),那么就让jQuery为您做吧!正如Smoky的回答中所指出的,
res
无论如何都不是一个响应数据字符串,因此这不起作用。请展开?如果var message=obj.message;有效,为什么不发出警报(obj.message);?对不起,我忘记了这个var result=eval(“(“+res+”)”)
eval
是为古代浏览器服务时使用的工具。如果您使用的是现代浏览器,则使用的是
JSON.parse
。如果您正在使用jQuery(这里就是这样),那么就让jQuery为您做吧!正如Smoky的回答中所指出的,
res
无论如何都不是一个响应数据字符串,因此这不起作用。请展开?如果var message=obj.message;有效,为什么不发出警报(obj.message);?对不起,我忘记了这个var result=eval(“(“+res+”)”)
eval
是为古代浏览器服务时使用的工具。如果您使用的是现代浏览器,则使用的是
JSON.parse
。如果您正在使用jQuery(这里就是这样),那么就让jQuery为您做吧!正如Smoky的回答中所指出的,
res
无论如何都不是一个响应数据字符串,因此这不起作用。请展开?如果var message=obj.message;有效,为什么不发出警报(obj.message);?对不起,我忘记了这个var result=eval(“(“+res+”)”)
eval
是为古代浏览器服务时使用的工具。如果您使用的是现代浏览器,则使用的是
JSON.parse
。如果您正在使用jQuery(这里就是这样),那么就让jQuery为您做吧!正如Smoky的回答中指出的,
res
无论如何都不是一个响应数据字符串,所以这不起作用。是的,就是这样。所以我必须在success和error中包含display_order_消息?或者更好,如果我得到一个400,它回复一个json,它也有一个我想要显示的错误消息,那该怎么办?那我该怎么办?你应该为每一个都有一个回调函数。它们没有相同的参数。您应该使用成功回调来处理数据和应用程序层错误(
res.status
)。错误回调应该用于处理jQuery层(或更低层)错误。是的,就是这样。所以我必须在success和error中包含display_order_消息?或者更好,如果我得到一个400,它回复一个json,它也有一个我想要显示的错误消息,那该怎么办?那我该怎么办?你应该为每一个都有一个回调函数。它们没有相同的参数。您应该使用成功回调来处理数据和应用程序层错误(
res.status
)。错误回调应该用于处理jQuery层(或更低层)错误。是的,就是这样。所以我必须在success和error中包含display_order_消息?或者更好,如果我得到一个400,它回复一个json,它也有一个我想要显示的错误消息,那该怎么办?那我该怎么办?你应该为每一个都有一个回调函数。它们没有相同的参数。您应该使用成功回调来处理数据和应用程序层错误(
res.status
)。错误回调应该用于处理jQuery层(或更低层)错误。是的,就是这样。所以我必须在success和error中包含display_order_消息?或者更好,如果我得到一个400,它回复一个json,它也有一个我想要显示的错误消息,那该怎么办?那我该怎么办?你应该为每一个都有一个回调函数。它们没有相同的参数。您应该使用成功回调来处理数据和应用程序层错误(
res.status
)。错误回调应该用于处理jQuery层(或更低层)错误。