我试图在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)”? –