如何让json_decode不将true和false转换为0和1?

时间:2015-08-06 00:10:53

标签: php json

我有来自reddit:http://www.reddit.com/.json的这个JSON字符串。我想从这里得到“喜欢”字段。

我的问题是reddit对likes字段使用“false”,而在没有任何喜欢或不喜欢的情况下使用“0”/ null。当我使用json_decode时,它会使用“likes”字段,如果不喜欢,则将false更改为null。这给我带来了一个问题,因为现在我无法判断该帖子是否被用户或中立者所厌恶。

我想把JSON字符串中的所有“false”替换为“不喜欢”,但这不起作用,因为如果帖子文本中有“false”,那么它也将被替换。

                // what i have right now
                $response = str_replace("false", "\"dislikes\"", $output); 
                $out = json_decode($response, true);

如何让json_decode不将“false”更改为0?

1 个答案:

答案 0 :(得分:1)

你不能将“虚假”改为“不喜欢”。
原因在于你的json是false而不是"false"意味着你的json中的false是布尔类型的。

如果您真的想要更改它,请修改json_encoded的原始数组:

样品:

// assuming this is your original array

$orginal_array = array("your_key" => false);

// change it to

$new_array = array("your_key" => "false");