代码之家  ›  专栏  ›  技术社区  ›  user19087

有人能用json_编码和json_解码来解释这段PHP代码吗?

  •  2
  • user19087  · 技术社区  · 18 年前
      $a = '{ "tag": "<b></b>" }';
      echo json_encode( json_decode($a) );
    

    这将产生:

    {"tag":"<b><\/b>"}
    

    当您认为它会准确地输出输入时。出于某种原因,json_encode添加了一个额外的斜杠。

    4 回复  |  直到 18 年前
        1
  •  18
  •   Community Mohan Dere    6 年前

    因为它是JSON标准的一部分

    http://json.org/

    烧焦

    any-Unicode-character-
        except-"-or-\-or-
        control-character
    \"
    \\
    \/ <---- see here?
    \b
    \f
    \n
    \r
    \t
    \u four-hex-digits
    
        2
  •  3
  •   Petter Friberg Onceler    8 年前

    echo json_encode($a,JSON_HEX_TAG)
    

    结果将是:

    ["\u003C\u003E"]
    

    您可以阅读本文来提高对JSON_编码的了解 http://php.net/manual/en/function.json-encode.php

        3
  •  2
  •   troelskn    18 年前

    \/ 变成 /

        4
  •  2
  •   Scott Reynen    18 年前

    您的输入不是有效的JSON,但PHP的JSON解析器(与大多数JSON解析器一样)将对其进行解析。

    推荐文章