Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SyntaxError:JSON.parse:空结果的意外字符_Javascript_Php_Ajax_Json - Fatal编程技术网

Javascript SyntaxError:JSON.parse:空结果的意外字符

Javascript SyntaxError:JSON.parse:空结果的意外字符,javascript,php,ajax,json,Javascript,Php,Ajax,Json,我知道有几个人问同一个问题,但我无法从这些问题中找到问题的答案。 我有以下代码 $.post("show_search_results.php", {location_name: ""+location_name+"", key: ""+key+"", category_id: ""+category_id+"", page_number: ""+page_number+""}, function(data){ if(data.length >0){ var dataArray =

我知道有几个人问同一个问题,但我无法从这些问题中找到问题的答案。 我有以下代码

$.post("show_search_results.php", {location_name: ""+location_name+"", key: ""+key+"", category_id: ""+category_id+"", page_number: ""+page_number+""}, function(data){
if(data.length >0){
    var dataArray = JSON.parse(data);
    var result_count=(dataArray.root.data.partners).length;
    if(result_count > 0){
        //block a;
    }else if(s_limit==0){
        //block b;
    }else{
        //block c;
    }
}});
我使用php作为后端。这段代码在我的本地服务器上运行良好,在具有以下json的live server上运行良好

{"root": {"success":"1","message":"Successfully retrieved data.","data":{"partners":[{"store_name":"Mega Mart (Readymade Brands)","store_address":"Next to SBI, Vyttila, Ernakulam","store_phone":"","item_name":"Festival of Young at 999","item_description":"Megamart celebrates the spirit of being young. Take home 4 groovy T-shirts or 2 stylish shirts  or 3 women kurtas for just rupees 999.","item_offer":"999 Offer","offer_expiry":"2014-06-08","tag1":"T-shirt","tag2":"Dress","tag3":"Jeans","store_id":"a9e12c46-ee00-11e3-a5e4-bc305be6e93e"}]}}}
但是对于这个json

{"root": {"success":"2","message":"no results found","data":{"partners":[]}}}
在live server中显示

SyntaxError: JSON.parse: unexpected character
var dataArray = JSON.parse(data);
我试图从代码中删除JSON.parse,但它显示

TypeError: dataArray.root is undefined
var array_locations=dataArray.root.data.locations;
请帮我找到解决办法。
谢谢。

所以你不应该真的需要手工做JSON.parse——如果你告诉jQuery需要JSON,jQuery可以帮你做这件事。它通常在返回响应中使用Content-Type头,但您可以告诉它解析JSON:

$.post({
    url: "show_search_results.php", 
    data: {
        location_name: ""+location_name+"", 
        key: ""+key+"", 
        category_id: ""+category_id+"", 
        page_number: ""+page_number+""
    }, 
    dataType: "json",
    success: function(data){
        // do something with data here...
        alert(data.root.message);
    }
});

顺便说一下,我尝试将您在那里指定的JSON放入Chrome调试控制台上的JSON.parse中,效果很好。JSON没有问题。

像这样改变你的条件

if(data.length >0){
    var dataArray = JSON.parse(data);

    if(typeof dataArray.root != undefined && dataArray.root.success == 1) {
        // Success
    }
    else {
       // Failure
    }
}

您的搜索数据与数据库数据不匹配。这就是为什么在你的研究中没有发现结果message@Renjith:这很好,但是错误JSON.parse:意外字符怎么办