Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
不支持PHP json_解码,有其他选择吗?_Php_Jquery_Ajax_Json - Fatal编程技术网

不支持PHP json_解码,有其他选择吗?

不支持PHP json_解码,有其他选择吗?,php,jquery,ajax,json,Php,Jquery,Ajax,Json,正如标题所述,我的托管提供商不支持json_decode,因此我需要找到一种方法来调整我的代码以实现相同的效果,但不使用json,下面是我的代码 jQuery: var allLocations = []; $(".locations").each( function(i, location) { // for each location block location = $(location); var loc = {

正如标题所述,我的托管提供商不支持json_decode,因此我需要找到一种方法来调整我的代码以实现相同的效果,但不使用json,下面是我的代码

jQuery:

    var allLocations = [];

    $(".locations").each( function(i, location) {
        // for each location block
        location = $(location);
        var loc = {
            'province' : $("select[data-loc*='province']", location).val(),
            'town' : $("select[data-loc*='town']", location).val()
        };
        allLocations.push( loc );
    });

        //POST the locations information
        $.ajax({
                type: 'POST',
                url: 'locations.php',
                dataType: 'json',
                data: { locations: JSON.stringify(allLocations), uid: uid },
                success: function(data){
                    //alert(data)
                }
        });
PHP:

如您所见,我正在获取每个位置的省和镇值,并使用它创建一个JSON对象,然后通过
$.ajax
发送到一个PHP文件,但是现在由于
JSON\u decode
不起作用,我需要尝试找到另一种解决问题的方法,我想尝试将一个关联数组传递给php文件,但我想看看您的人的输入是什么,以及是否有更好的方法来实现所需的结果


先走一步

对于5.2之前的PHP版本(其中包括json_*),有一种json_*解码的替代实现。我刚才做的一个项目打过电话,效果很好


或者看看一些PEAR包,例如..

您仍然可以使用JSON。有几个编码器/解码器库没有您提到的扩展名。例如:

  • 服务(JSON):
  • Zend_JSON:
等等。查看json.org

查看PHP部分:


就是你要找的。

似乎是php配置文件中的一个模糊设置干扰了json\u解码,一旦我禁用了它,一切正常,谢谢你的帮助!我将尽快编辑此答案,以描述我是如何使其工作的。

在转向其他实现之前,我会尝试询问托管提供商是否以及何时计划升级到5.2。也许有礼貌地问一下,是否有可能加快处理速度,而PHP二进制文件之外的json(例如PHP脚本库中的json)可能会很慢而且有问题。如果我没有弄错的话,它只添加了
json_encode
函数,而不是我真正需要的
json_decode
函数,有其他选择吗?当我尝试时,我得到了这个“[恶意或不正确的JSON字符串]”,但我发送的是相同的JSON字符串
JSON_decode
,我假设这个类没有那么健壮。好吧,我没有遇到任何问题,但是有许多实现应该适合(见其他答案)似乎Solar和Zend框架是最好的,有什么建议吗?我不知道从哪里开始。这里有一个很好的例子:更多关于“模糊设置”的细节可能会有所帮助。
$json = $_POST['locations']; 
$uid = $_POST['uid']; // $json is a string
$json_array = json_decode($json, true); 

mysql_connect('localhost','user','pass') or die(mysql_error());
mysql_select_db('eskom_products') or die(mysql_error());

//insert the locations into the database
while($json_array as $key){
    $query = mysql_query("INSERT INTO suppliersLocations (supplier_id, province, town) VALUES('".$uid."', '".$key['province']."', '".$key['town']."' ) ") or die(mysql_error());
}

echo $text;