Jquery Parse Json关于ajax的成功
我想在我的jquery ajax成功中得到一个json:为了但是我没有…….
多数民众赞成我试图做的事情:
$("#addcatform").submit(function() { var str = $(this).serialize(); $.ajax({ type: "POST", url: "ajax.php", data: str, success: function(data){ var json_x = data; alert(json_x.firstName2); $('#result').html(json_x.firstName2); $('#result2').html(json_x.b); } }); return false; event.preventDefault(); }); // submit end
php回声这个:
$arr = array ('firstName2'=>'hallo','b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr);
这有什么不对吗? 谢谢你的帮助!!!!
你需要在使用它之前解析你的json,
您可以在请求中添加dataType – jQuery将解析您的响应json
$.ajax({ type: "POST", url: "ajax.php", dataType: 'json',
或者,您可以自己解析 –
success: function(data){ var json_x = $.parseJSON(data);
你可以试试这个:
var data=$.ajax({ type: "POST", url: 'ajax.php', data: { data:str }, async: false, dataType: 'json' }); var msg= data.responseText; msg=jQuery.parseJSON(msg);
我通常从我的php页面发送一个数组或消息’error’
if(msg=='error') { /* do something */ } else // use the data
这适用于jquery 1.6-> 1.8
编辑:因为不推荐使用jquery 1.8 async。 我会推荐这种格式:
$.ajax({ type: "POST", url: 'ajax.php', data: { data:str }, dataType: 'json', ).done(function(data) { // do something with the data }) .fail(function() { // give appropriate message })
data
是示例中的字符串。 使用jQuery.getJSON() 。 编辑:由于您无法使用getJSON(dûh)执行POST请求,请使用带有适当数据类型的.ajax
。 这将通过ajax检索数据,并解析生成的字符串,就好像它是JSON一样。 即使使用getJSON
,结果也将是一个数组(或类似于对象的数组,不确定)。 这没有您可以使用点符号访问的方法或变量。 您需要通过data['a']
访问它。
$.ajax({ dataType: "json", type: "POST", url: "ajax.php", data: str, success: function(data){ var json_x = data; alert(json_x['firstName2']); $('#result').html(json_x['firstName2']); $('#result2').html(json_x['b']); } });