json_encode没有给出有效的json字符串

时间:2012-10-24 09:58:39

标签: php json

我有一个json字符串的问题,我用json_encode生成。 这是输入:

stdClass Object
(
[titles] => stdClass Object
    (
        [nl] => test
        [en] => test
    )

[contents] => stdClass Object
    (
        [nl] => <p>\n   test</p>\n
        [en] => <p>\n   test</p>\n
    )

[languages] => stdClass Object
    (
        [0] => nl
        [1] => en
    )

)

我使用这个SQL语句把它放在我的数据库中:

INSERT INTO `pages`
                    (`title`, `content`, `lang`)
                    VALUES('{"nl":"test","en":"test"}', '{"nl":"<p>\\n\ttest<\/p>\\n","en":"<p>\\n\ttest<\/p>\\n"}', '{"0":"nl","1":"en"}')

据我所知,没有错,它都存储在数据库中,没有问题。

然后我尝试获取输出我得到的内容:

{"nl":"<p>n test</p>n","en":"<p>n   test</p>n"}

导致:

(
[id] => 10
[title] => stdClass Object
    (
        [nl] => test
        [en] => test
    )

[content] => 
[lang] => stdClass Object
    (
        [0] => nl
        [1] => en
    )

[created] => 2012-10-24 11:49:52
)

所以,我的json字符串无效。 这怎么可能? 我真的不知道我做错了什么。

1 个答案:

答案 0 :(得分:0)

啊!你是对的!愚蠢的我没有想到这一点,我总是为我的SELECT语句使用一个函数,在这段代码中我使用的是stripslashes(),这显然使我的json字符串无效,因为有一些{{1}其中的东西。 谢谢!