PHP在json字符串中的数字前后添加双引号

时间:2015-11-06 10:00:24

标签: php json regex

我试图在json字符串中为数字添加双引号。例如:

{"id":1, "result": 288230376201306378}

应该是:

{"id":1, "result": "288230376201306378"}

我如何实现这一目标?我在某处读到了我应该使用正则表达式的地方。不幸的是,我对此并不熟悉。

另外,如果您能指出一些有助于我理解正则表达式的在线资源,我将非常感激。

感谢。

1 个答案:

答案 0 :(得分:2)

  

{" id":1,"结果":288230376201306378}

id也是一个数字,如果你想修改它,请使用:

$myJsonString = '{"id":1, "result": 288230376201306378}';

$myNewJsonString = preg_replace('/"([^"]+)":\s*(\d+)/', '"\1": "\2"', $myJsonString);

如果您只想修改result用途:     

$myJsonString = '{"id":1, "result": 288230376201306378}';

$myNewJsonString = preg_replace('/"result"\s*:\s*(\d+)/', '"result": "\1"', $myJsonString);

关于正则表达式的问题,互联网上有很多教程。我个人使用regex101来实时测试我的正则表达式(还有一个"快速参考",它总结了正则表达式中使用的主要标记)。

由于正则表达式在这种情况下不是最佳解决方案,因此您可以在将数字添加到数组(string)$myNumber之前将其转换为字符串。这些数字将被视为字符串,当您json_encode整个数据时,将添加引号。