从php将json解析为javascript时出现问题
这是我的示例代码:
//function MethodAjax = function (wsFile, param) { return $.ajax({ type: "POST", dataType: "json", url: '../proses/' + wsFile + ".proses.php", data: 'param='+param, error: function (msg) { return; }, }); }; //call function $(document).ready(function() { $('#getproduk').click(function(){ var param = { ProdukId : '1', ProdukName : 'test' }; CallMethodWithAjax('try', JSON.stringify(param)).done(function(data){ $data = JSON && JSON.parse(data) || $.parseJSON(data); }); }); //Simple Php code <?php $data = $_POST['param']; $data = (json_decode($data)); $data1['name'] = $data->ProdukName; $data1['id'] = $data->ProdukId; $data1['test'] = 'test'; echo json_encode($data1); ?> //post, response and error at console response : {"name":"test","id":"1","test":"test"} post : param {"ProdukId":"1","ProdukName":"test"} error : SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
如何解决这个问题,我尝试了在SO和google上找到的解决方案,但仍然无法解决此问题
请有人帮忙
谢谢
如果响应为JSON,则jQuery的$ .ajax()函数将生成一个JavaScript对象,因此,我认为您看到的错误是尝试解析JavaScript对象而不是您期望的字符串的结果。在提供给该done函数的回调中,检查data并发现它是一个对象,不需要JSON.parse结果。
done
data
JSON.parse