Mysql/PHP/json_encode布尔字符串转换

sin*_*nte 7 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作为布尔值它返回0/1 - 但我不想要那个......

当然我可以运行一个str_replacejson字符串 - 但我认为有替代品不是吗?

dec*_*eze 8

那么,您从数据库选择字符串.这就是编码的内容.使用SQL true/ falseboolean值,它们在PHP中成为0/ 1,并在JSON编码之前将它们转换为PHP布尔值:

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

echo json_encode($data); // {'id':true}
Run Code Online (Sandbox Code Playgroud)