无法解码JSON striplashed String?

时间:2010-01-17 02:04:55

标签: php json

有谁知道为什么会这样?

var_dump(json_decode(stripslashes(json_encode(array("O'Reiley"))))); // array(1) { [0]=> string(8) "O'Reiley" } 
var_dump(json_decode(stripslashes(json_encode(array("O\'Reiley"))))); // NULL

JSON函数是否使用'

3 个答案:

答案 0 :(得分:5)

我不确定,但json_last_error()应该:)

我的猜测是,json_encode()\'stripslashes()然后打破的事情 - 例如添加另一个“\”以逃避反斜杠。

在解码错误之前,是不是使用striplslashes()摆弄了json编码的字符串?

答案 1 :(得分:2)

我没有太深入地看待它,但看起来你的代码是

  1. 使用PHP数组并将其转换为json字符串

  2. 用那根绳子捣碎

  3. 尝试将mucked字符串解码为json

  4. 想象这个

    $json_string = json_encode(array("O\'Reiley");
    $json_string = stripslashes($json_string);      
    
    //it's no longer json, its just some random non-conforming string
    var_dump(json_decode($json_string))
    

答案 2 :(得分:0)

你应该尝试不带stripslashes()

$result = json_encode(striptslashes(array("O\'Reiley")));
if(json_last_error() > 0){
   $result = json_encode(array("O\'Reiley"));
}