用JSON字符串中的布尔值替换字符串?

Posted

技术标签:

【中文标题】用JSON字符串中的布尔值替换字符串?【英文标题】:Replacing string by boolean in a JSON string? 【发布时间】: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) 【参考方案1】:

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

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

【讨论】:

啊,确实有效 :) 我会在几分钟内验证

以上是关于用JSON字符串中的布尔值替换字符串?的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式笔记——用正则表达式处理文本

字符串在json中递归替换值

用 html/jquery 中的一个 JSON 字符串替换许多数据标签 [重复]

用字典值替换 Pandas Dataframe 中的部分字符串

用一个值替换 Pandas 系列中的多个子字符串

正则表达式 - 用 oracle 中的值替换字符串集