我的表单在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将它作为对象发送。
答案 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);