我試圖在PHP.But JSON解碼成陣列我的JSON是一個字符串中像的Json解碼返回NULL
string(307) " string(290) "{"id":"1","name":"test name","rowno":"0","note":"test notes","created_date":"2016-05-01","updated_date":"2016-05-12 05:08:05"}" "
串! 如何將其轉換爲數組。
我試圖在PHP.But JSON解碼成陣列我的JSON是一個字符串中像的Json解碼返回NULL
string(307) " string(290) "{"id":"1","name":"test name","rowno":"0","note":"test notes","created_date":"2016-05-01","updated_date":"2016-05-12 05:08:05"}" "
串! 如何將其轉換爲數組。
這看起來像你試圖解碼(或試圖輸出)的數據與var_dump()
。這不是你需要的功能;你需要的是json_decode()
:
$data = json_decode($json);
如果這不是問題,和你實際接收數據如上,那麼你就必須剝離出來 - 最有可能使用像一個正則表達式以下:
$s = 'string(307) " string(290) "{"id":"1","name":"test name","rowno":"0","note":"test notes","created_date":"2016-05-01","updated_date":"2016-05-12 05:08:05"}" "';
preg_match('/\{(.*)\}/', $s, $matches);
print_r($matches);
這將返回您的json
:
Array
(
[0] => {"id":"1","name":"test name","rowno":"0","note":"test notes","created_date":"2016-05-01","updated_date":"2016-05-12 05:08:05"}
[1] => "id":"1","name":"test name","rowno":"0","note":"test notes","created_date":"2016-05-01","updated_date":"2016-05-12 05:08:05"
)
因此,您可以在$matches
內正確解碼。
正則表達式是一個野獸我,所以我會盡力解釋儘可能地表達是什麼在做:
\{
首開{
(.*)
匹配匹配其間\}
任何字符匹配關閉}
是的,你是正確的。問題是我正在使用var_dump()而不是echo.I改變了它,它工作正常。謝謝你:-) – Shashikala
經過大量的RND,這就是爲我工作和解決問題的答案。 – Jigar7521
這是'json'的'var_dump()'。 json在哪裏生產?顯示生成它的代碼。 – Darren
從哪裏得到字符串(307)「字符串(290)」? –