我试图在json字符串中为数字添加双引号。例如:
{"id":1, "result": 288230376201306378}
应该是:
{"id":1, "result": "288230376201306378"}
我如何实现这一目标?我在某处读到了我应该使用正则表达式的地方。不幸的是,我对此并不熟悉。
另外,如果您能指出一些有助于我理解正则表达式的在线资源,我将非常感激。
感谢。
答案 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
整个数据时,将添加引号。