0

PHPスクリプトで、AJAX経由で送信しているJSONのデコードに問題があります。

jQuery:

$.ajax({
    url : 'admin/modifyPermissions',
    type : 'post',
    data : {
        'JSON' : JSON
    },
    success : function(msg){
        if(msg == '1') {
            alert('Permissions saved successfully');
        } else {
            alert(msg);
        }
    }
});

PHPスクリプト:

public function modifyPermissions(){

    if(isset($_POST['JSON']) && !empty($_POST['JSON'])) {
        $json = json_decode($_POST['JSON'],true);
        if($json !== NULL && $json !== FALSE) {

        } elseif($json === NULL){
            die('The string passed is not a valid JSON object and cannot be decoded.' . "\n" . $_POST['JSON']);
        } else {
            die('There was an error with the JSON string');
        }
    } else {
        die('No JSON string was sent!');
    }
}

渡されるJSONは、私には整形式に見えます。

{"martin":{3,5},"user2":{3,4,5}}

そしてPHPはnullを返しています。サーバーにPHP5.2.7がインストールされているため、json_last_error()を使用できません。

4

3 に答える 3

5
{"martin":{3,5},"user2":{3,4,5}}

無効なJSON。有効なJSONは次のようになります。

{"martin":[3,5],"user2":[3,4,5]}
于 2012-04-16T14:09:35.523 に答える
0

有効なJSONを送信していないため、エラーが発生します。@Mattが追加したコメントを見てください。

同じエラーを再現しないように、PHPに送信する前に、独自のJSON文字列を作成しようとせず、JSが提供するものを使用してください。例:

var obj = { key: val, okey: oval }
objJSON = JSON.stringify(obj)
// objJSON is ALWAYS going to be valid json
于 2012-04-16T14:11:53.453 に答える
0

JSONが無効です。

表記は、{}キーと値のペアを示します。配列として使用している場合。

JSONは、

{"martin":[3,5],"user2":[3,4,5]}
于 2012-04-16T14:12:32.833 に答える