[英]Converting JSON to PHP Array
我正在向包含多个项目的PHP发送JSON帖子。 我的JSON看起来像这样:
[
{
"request": "submitTicket",
"id": "3",
"delivLoc": "1 COLORADO CITY",
"estimatedBarrels": "123.0",
"facilityID": "T666778",
"highDegreeF": "0.0",
"highOilFeet": "0"
},
{
"request": "submitTicket",
"id": "4",
"delivLoc": "1 COLORADO CITY",
"estimatedBarrels": "143.0",
"facilityID": "T666778",
"highDegreeF": "0.0",
"highOilFeet": "0"
},
{
"request": "submitTicket",
"id": "5",
"delivLoc": "1 COLORADO CITY",
"estimatedBarrels": "122.0",
"facilityID": "T666778",
"highDegreeF": "0.0",
"highOilFeet": "0"
}
]
我一直试图在PHP中使用json_decode(),但它返回null,这会导致foreach循环失败。 为什么解码不起作用?
实际上,此JSON在到达PHP时会反斜线放入其中。 在发布到这里之前,我将其取出来,还尝试使用stripslashes()运行它。
尝试这个..
$data ='[
{"request":"submitTicket","id":"3","delivLoc":"1 COLORADO CITY","estimatedBarrels":"123.0","facilityID":"T666778","highDegreeF":"0.0","highOilFeet":"0"},
{"request":"submitTicket","id":"4","delivLoc":"1 COLORADO CITY","estimatedBarrels":"143.0","facilityID":"T666778","highDegreeF":"0.0","highOilFeet":"0"},
{"request":"submitTicket","id":"5","delivLoc":"1 COLORADO CITY","estimatedBarrels":"122.0","facilityID":"T666778","highDegreeF":"0.0","highOilFeet":"0"}
]';
$jsonarray=json_decode($data,true);
print_r($jsonarray);
我听了每个人的建议后就弄清楚了。 在尝试解码JSON之前,我必须从帖子中删除斜杠。 我这样解码为PHP数组:
$data = json_decode(stripslashes($_POST['json']));
我想昨晚为时已晚,我对此有些疏忽。 感谢大家的帮助和快速的回复。
尝试这个。
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, true));
输出:
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
我看到的是传递的实际数据可能是无效的json。
只需在变量中分配数据并像这样使用
var data = [{
"request": "submitTicket",
"id": "3",
"delivLoc": "1 COLORADO CITY",
"estimatedBarrels": "123.0",
"facilityID": "T666778",
"highDegreeF": "0.0",
"highOilFeet": "0"
},
{
"request": "submitTicket",
"id": "4",
"delivLoc": "1 COLORADO CITY",
"estimatedBarrels": "143.0",
"facilityID": "T666778",
"highDegreeF": "0.0",
"highOilFeet": "0"
},
{
"request": "submitTicket",
"id": "5",
"delivLoc": "1 COLORADO CITY",
"estimatedBarrels": "122.0",
"facilityID": "T666778",
"highDegreeF": "0.0",
"highOilFeet": "0"
}
]
然后在数据部分中将其与ajax(我假设您正在使用ajax)一起传递
$.ajax({
url:[your url],
data:data,
....
});
希望这会工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.