php - mysql/PHP/json_encode boolean 字符串转换

标签 php mysql json

我有一个 mysql 查询可以说:

SELECT cca_id AS id, cca_title AS text,IF((SELECT count(*) from crm_categories WHERE cca_id_prev = id),'TRUE','FALSE') AS children FROM crm_categories WHERE...

现在我得到一个以 true/false 作为字符串的数组

如果我使用 json_encode,结果类似于 {"id":"false"}

但我需要不带引号的 true/false - 问题是如果我在 mysql 查询中使用 true false 作为 bool 值,它会返回 0/1 - 但我也不希望这样...

当然,我可以对 json 字符串运行 str_replace - 但我认为还有其他选择,不是吗?

最佳答案

嗯,您从数据库中选择字符串。这就是被编码的内容。使用 SQL true/false bool 值,在 PHP 中变为 0/1,并将它们转换为 PHP bool 值在对它们进行 JSON 编码之前:

$data['id'] = (bool)$data['id']; // 0/1 -> PHP false/true

echo json_encode($data); // {'id':true}

关于php - mysql/PHP/json_encode boolean 字符串转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23153347/

相关文章:

javascript - 如何在 JavaScript 中解析或查询复杂的 JSON

java使用gson从json格式解析到 map 问题

php - array_replace_recursive 不会用一些空数组替换数组

php - 使用 PDO 执行高级搜索查询的问题

php - MySQL:多个经纬度的附近位置

MySql查询计划选择行数较少的索引来检查,但执行速度慢得多

php - 扩展 SELECT 查询

javascript - 使用 javascript/jquery 设置 div 的值/文本 - 在 php 循环内

mysql - 如何在 mysql 中一起比较时间和日期列?

c++ - C++ 的 JSON 解析器