问题描述
我希望预先解析JSON,并在JSON中将整型和浮点值转换为字符串。此外,JSON中还有一些字符串值。
例如:
{ "first_name": "sample", "last_name": "lastname", "integer" : 100, "float" : 1555.20 }
我只是使用here中的preg_replace():
echo preg_replace('/: *([0-9]+.?[0-9e+-]*)/', '"\1"', $jsonString);
但如果数组中有字符串值,则它不起作用,只有在数组中只有整数值和浮点值时,它才起作用。
有人能解释一下为什么会发生这种情况吗?
推荐答案
解决方案如下:
$str = '{"first_name":"sample", "last_name": "lastname", "integer" : 100, "float" : 1555.20, "createddate":"2015-06-25 09:57:28"}'; $result = preg_replace("/("w+":s*?)(d+.?[^,}]*)/imu",'$1"$2"',$str); var_dump($result);
// output: string(121) "{"first_name":"sample", "last_name": "lastname", "integer" : 100, "float" : 1555.20, "createddate":"2015-06-25 09:57:28"}"