我在JS里生了JSON字符串如下:
var str_json="[{id:1,name:\"Kyle\"},{id:2,name:\"Mike\"}]"$.ajax({
    type: "POST",
    url: "test.php",
    data: "strjson="+str_json,
    success: function(msg){ 
         alert (msg);
    }
});
php如下:
<?php  
   $arr=(array)json_decode($_POST['strjson']);
   print_r($arr);
?>
我是想将str_json提交到php,然后将str_jsonl转换回php的数组,请问该如何写?
谢谢

解决方案 »

  1.   

    echo $_POST['strjson'];//看看有没有给自动加上转义符了。
      

  2.   

    $arr = eval('array('.json_decode($_POST['strjson']).')'); 
      

  3.   

    $s = '[{"id":1,"name":"Kyle"},{"id":2,"name":"Mike"}]' ;print_r(json_decode($s));Array
    (
        [0] => stdClass Object
            (
                [id] => 1
                [name] => Kyle
            )    [1] => stdClass Object
            (
                [id] => 2
                [name] => Mike
            ))请保证正确的格式
      

  4.   

    去www.json.org读一下数据格式的正确书写方法
      

  5.   


    var str_json='[{"id":"1","name":"Kyle"},{"id":"2","name":"Mike"}]';
    var d = new Date();
    var t = d.getTime();
    $.ajax({ 
        type: "POST", 
        url: "test.php?t="+t, 
        data: "strjson="+str_json, 
        success: function(msg){ 
            alert (msg); 
        } 
    }); 
    $strjson = str_replace('\"','"',$_POST['strjson']);
    $arr = json_decode($strjson); 
    print_r($arr);