PHP json_decode不支持,任何替代品?

时间:2010-09-14 10:09:57

标签: php jquery ajax json

如标题所示,我的托管服务提供商不支持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 = $_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;

正如您所看到的,我获取每个位置的省和城镇值,并使用它创建一个JSON对象,然后我通过$.ajax发送到PHP文件,但现在{{1}不起作用,我需要尝试找到解决问题的另一种方法,我正在考虑尝试将关联数组传递给php文件,但我想看看你的人的输入是什么,如果有的话可能是实现预期结果的更好方法。

提前Thanx!

5 个答案:

答案 0 :(得分:1)

对于早于5.2的PHP版本(其中包含json_ *),有一个json_decode的替代实现。它被称为jsonwrapper,并且对我之前做过的项目非常有效。

或者看看一些PEAR包,例如: Service_JSON

答案 1 :(得分:1)

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

和其他人。看看json.org

答案 2 :(得分:0)

参见PHP部分:

http://json.org/

答案 3 :(得分:0)

This正是您要找的。

答案 4 :(得分:0)

似乎在php配置文件中的一个模糊设置正在弄乱json_decode,一旦我禁用它,一切正常,Thanx为你所有的帮助人!我会尽快编辑这个答案,以描述我是如何运作的。