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 }) 

http://api.jquery.com/jquery.ajax/

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']); } });