将JSON字符串中的字符串替换为布尔值


Replacing string by boolean in a JSON string?

将以下JSON数据视为字符串

'{"prop0":"true", "prop1":
    [
       {"prop0":"false", "prop1":"true", "prop2":
          [
             {"prop0":"false"}
          ]
       }
     ]
 }'

这个结构是动态的,可能有更多的节点、子节点等。这就是我的后端接收这个"不干净"JSON数据(实际上是一个字符串)的方式。对于性能问题,我试图避免解析为JSON obj,并在每个节点中循环,以发现是否有一个可以转换为布尔值的字符串。

我知道如何做到这一点,我只是想知道是否有一个"神奇"的解决方案可以在字符串中用true代替"true",比如

str_replace("true", true, $data);

这显然行不通。毕竟,我只需要删除布尔值周围的引号。有人知道快速的方法吗?

我想您的str_replace尝试已经非常接近了。这应该做你正在寻找的:

str_replace('"true"', 'true', $data);