如何创建正确的 PHP json 响应

how to create correct PHP json response

你好,我有一个页面可以用 jquery 在 json 中调用一个 ajax 页面。 我刚刚设置

dataType: "json"

在 ajax 调用,我在 php

中设置 header
header("Content-type: application/json; charset=utf-8");

但是当我尝试在客户端中阅读我的回复时出现此错误:

SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data

var o = JSON.parse(jsonString);

更多信息 PHP 文件函数:

function _addToWishlist($v,$db){   
$ris = array();
$data = array();    
$data[0]=20;
$data[1]=25;
$data[2]=30;    
$ris['stato']="1";    
$ris['mex']="DA IMPLEMENTARE!!!";
$ris['data']=$data;
$ris['action']="";
ob_clean();    
echo json_encode($ris);   
}

这是一个 php 响应:

{"status":"success","stato":"1","mex":"DA IMPLEMENTARE!!!","data":[20,25,30],"action":""}

在客户端我使用这个 javascript:

$.ajax({
                url: "common/function/include/dataLoad.php",
                type: "POST",
                data: datas,
                async:false,
                //dataType: "text", 
                dataType: "json",
                success: function(ris) {
                        // Run the code here that needs
                        //    to access the data returned
                        //$(this).parent
                        //alert (ris);
                        risp=ris;
                       
                        //var a = JSON.parse(ris);
                        tryParseJSON(ris);
                        //return ris;
                },
                error: function() {
                        alert('Errore di rete');
                }

                }).done(function(){
                        if(divwhere!=""){                           
                                $(divwhere).html(risp);
                                }
                        if(actionAfter!=""){
                                eval(actionAfter);
                                }

            });

用于测试 json 的函数在这里:Whosebug

我怎样才能创建正确的调用 json?非常感谢

jQuery 将自动为您解析 JSON 响应 - 您无需再次执行。返回的 ris 对象已准备好供您按原样使用。假设请求有效,那么您的 PHP 响应格式没有问题。

success: function(ris) {
    console.log(ris.status); // = 'success'
    console.log(ris.mex); // = 'DA IMPLEMENTARE!!!'
},