我有以下一段代碼正在生成JSON變量。我使用內置的json_decode
函數來解碼json變量,但是在解碼JSOn變量後我得到了NULL。無法解碼json變量
$a=array("targetAction"=>"getHeadFields","targetHead"=>$table_name);
$obj1 = Post_Uamsdata($a);
echo $obj1;
$file = json_decode($obj1,true);
var_dump($file);
$ obj1是我的json變量。每當我回聲它,我得到的結果如下:
{"success":"yes","error":"","message":"","arguments":"[{\"fieldNo\":\"1\",\"fieldName\":\"ItemType\",\"fieldType\":\"character(16)\",\"notnull\":\"f\",\"fieldLabel\":null,\"primary_key\":\"f\",\"default\":null,\"fieldOption\":[]},{\"fieldNo\":\"2\",\"fieldName\":\"Long\",\"fieldType\":\"character(20)\",\"notnull\":\"f\",\"fieldLabel\":null,\"primary_key\":\"f\",\"default\":null,\"fieldOption\":[]},{\"fieldNo\":\"3\",\"fieldName\":\"Lat\",\"fieldType\":\"character(20)\",\"notnull\":\"f\",\"fieldLabel\":null,\"primary_key\":\"f\",\"default\":null,\"fieldOption\":[]},{\"fieldNo\":\"4\",\"fieldName\":\"MapDate\",\"fieldType\":\"character(16)\",\"notnull\":\"f\",\"fieldLabel\":null,\"primary_key\":\"f\",\"default\":null,\"fieldOption\":[]},{\"fieldNo\":\"5\",\"fieldName\":\"FieldNote\",\"fieldType\":\"character(64)\",\"notnull\":\"f\",\"fieldLabel\":null,\"primary_key\":\"f\",\"default\":null,\"fieldOption\":[]}]"}
我檢查了它在網上的json驗證,它是說這個JSOn是有效的。但每當我解碼這$ obj1到$文件,然後我總是得到NULL。
無法重現 - 假設你函數'Post_Uamsdata'生成你聲明的JSON字符串,它成功解碼:[gist](https://gist.github.com/customanything/6680625) – traq
請分享Post_Uamsdat的代碼a() – anupam
僅當整個JSON字符串附加了分號(;)時纔可能。所以,我想你應該這樣做:$ file = json_decode(rtrim($ obj1,';'),true);讓我知道。 – anupam