小编Da *_*boy的帖子

如何处理json字符串php中的反斜杠

尝试解码由json_encode生成的字符串时,json_encode和/或json_decode似乎有些奇怪:

    $object = new stdClass;
    $object->namespace = 'myCompany\package\subpackage';

    $jsonEncodedString = json_encode($object);
    echo $jsonEncodedString;
    // Result of echo being:
    // {"namespace":"myCompany\\package\\subpackage"}

    $anotherObject = json_decode($jsonEncodedString);
    echo $anotherObject->namespace;
    // Result of echo being:
    // myCompany\package\subpackage


    $yetAnotherObject = json_decode('{"namespace":"myCompany\\package\\subpackage"}');
    // Result should be:
    // myCompany\package\subpackage
    // But returns an invalid string sequence error instead...
    echo json_last_error_msg();
Run Code Online (Sandbox Code Playgroud)

我之前从未遇到过这样的问题,因为直到今天我还没有捕获带有反斜杠的字符串.在回顾上面的代码时,我可以使用PHP的内置组件进行编码/解码.但是,如果我尝试解码由此编码器生成的字符串,则会收到错误消息.我已经读过像" Predefined Constants " 这样的文档项目和其他堆栈问题,比如" 如何使用php删除json响应中的反斜杠("\")? ".但我似乎无法找到一个原因为什么我无法解码由json_encode生成的字符串.我用来测试这段代码的PHP版本是5.5.9.

我知道错过了一些东西我可能完全无能为力,但如果我尝试在其他地方使用它,我应该处理由json_encode生成的字符串吗?

php json

10
推荐指数
2
解决办法
3万
查看次数

标签 统计

json ×1

php ×1