【问题标题】:Replacing string by boolean in a JSON string?用JSON字符串中的布尔值替换字符串?
【发布时间】:2015-11-23 15:30:25
【问题描述】:

将以下 JSON 数据视为字符串

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

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

我知道该怎么做,我只是想知道是否会有一个“神奇”的解决方案将“true”替换为 字符串中的 true,类似于

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

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

【问题讨论】:

  • 这个 JSON 字符串是如何生成的?你不能正确生成/
  • str_replace(true, true, $data)

标签: php json


【解决方案1】:

我想您与str_replace 的尝试非常接近。这应该可以满足您的需求:

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

【讨论】:

  • 啊,确实有效 :) 我会在几分钟内验证
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-21
  • 1970-01-01
  • 2021-06-08
  • 2018-09-07
  • 1970-01-01
  • 2015-08-13
  • 2014-03-30
相关资源
最近更新 更多