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

PHP在json字符串中的数字前后添加双引号,php,json,regex,Php,Json,Regex,我试图在json字符串中为数字添加双引号。例如: {“id”:1,“result”:288230376201306378} 应该是: {“id”:1,“result”:“288230376201306378”} 我如何做到这一点?我在某个地方读到我应该使用正则表达式。不幸的是,我对这有点陌生 另外,如果您能给我指一些在线资源,帮助我理解regex,我将非常感激 谢谢 {“id”:1,“result”:288230376201306378} id也是一个数字,如果您也想修改它,请使用: $myJs

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

{“id”:1,“result”:288230376201306378}

应该是:

{“id”:1,“result”:“288230376201306378”}

我如何做到这一点?我在某个地方读到我应该使用正则表达式。不幸的是,我对这有点陌生

另外,如果您能给我指一些在线资源,帮助我理解regex,我将非常感激

谢谢

{“id”:1,“result”:288230376201306378}

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

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

$myNewJsonString = preg_replace('/"([^"]+)":\s*(\d+)/', '"\1": "\2"', $myJsonString);
如果您只想修改
结果
请使用:
$myJsonString = '{"id":1, "result": 288230376201306378}';

$myNewJsonString = preg_replace('/"result"\s*:\s*(\d+)/', '"result": "\1"', $myJsonString);
关于regex的问题,互联网上有很多教程。我个人使用它来实时测试我的正则表达式(还有一个“快速参考”,它总结了正则表达式中使用的主要标记)



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

json\u编码(响应)
在PHPHow中您正在创建响应吗?@Manwal我没有在我的代码中创建响应。我正在使用基于文本的协议实现一个API,该协议以json格式返回响应。@Tushar:在这种情况下,您不能使用
json\u decode/encode
,PHP不会在数值周围加引号,会将大量数字改为科学符号。即使它适用于给定的示例,这有点危险,因为你不知道自己是否在引号之间,例如:
{“mykey”:“abcd:123,defg:456”}
我修改了第一个正则表达式以使其更安全,并添加了一个关于正则表达式的警告。