将PHP JSON字符串转换为有效的json

时间:2018-03-20 20:43:08

标签: javascript php json ajax

我的表单在PHP文件中定义如下:

<form id = "testForm" action="" method="post" >
    First name: <input type="text" name="FirstName" id="FirstName" value="Mickey"><br>
    Last name: <input type="text" name="LastName" id="LastName" value="Mouse"><br>
    <button type = "button" onclick="submit()">Submit Top Test </button>
</form>

单击按钮时会调用以下函数。

function submit(){  
        var formdata = $("#testForm").serializeArray();
        var sendJson = JSON.stringify(formdata);

        var request = $.ajax({
                url: 'php/<path to php file>/processPost.php',
                type:'POST',
                data:{myData:sendJson},
                success: function(msg) {  
                     alert(msg);
                },
                 error: function(e){
                        alert("Error in Ajax "+e.message);
                 }

        });

    }           

processPost.php文件中,我定义了以下内容:

1)  $json_obj = json_encode($_POST["myData"]);

2)  var_dump($json_obj);

要定义上面的PHP内容,我使用了Akhan Ismailov json_decode只需稍加更改(而不是json_encode,我正在使用 alert(msg)

我可以看到以下内容在string(93) ""[{\"name\":\"FirstName\",\"value\":\"Mickey\"},{\"name\":\"LastName\",\"value\":\"Mouse\"}]"" 窗口中打印出来。

[{
    "name": "FirstName",
    "value": "Mickey"
}, {
    "name": "LastName",
    "value": "Mouse"
}]

我打算向我的java webservice发出curl请求,我想发送类似这样的JSON:

string(93)

如何从上面的代码中删除/并转发斜杠{ "name": "Jaap", "objectID": 1, "isActivated": true } ,使其成为有效的json。有一次,我有 一个有效的json,我打算使用cURL将它作为对象发送。

3 个答案:

答案 0 :(得分:1)

$_POST["myData"]已经是JSON,因此您无需执行任何操作

$json =  $_POST["myData"];
call_my_web_service($json);

答案 1 :(得分:1)

var sendJson = JSON.stringify(formdata);

这条线是不必要的。

直接使用

data:formdata,

然后在php侧打印$_POST并查看所有数据是否即将来临

答案 2 :(得分:1)

$_POST['myData']已经是JSON,因为您使用JSON.stringify()来创建它。您需要使用json_decode()对其进行解码,而不是json_encode()

$obj = json_decode($_POST['myData'], true);
var_dump($obj);