有一个文本(来自数据库)需要转成 json。例子
$text = '[{"val":"4"}]';
$f = json_decode($text);
一切都解决了,但是如果其中有反斜杠,\
那么一切都会中断。例子
$text = '[{"val":"4\4"}]';
$f = json_decode($text);
在stripslashes函数中找到了出路
但这并不是特别合适,因为。她删除\
。例子
有没有其他的保存方法\
?
有一个文本(来自数据库)需要转成 json。例子
$text = '[{"val":"4"}]';
$f = json_decode($text);
一切都解决了,但是如果其中有反斜杠,\
那么一切都会中断。例子
$text = '[{"val":"4\4"}]';
$f = json_decode($text);
在stripslashes函数中找到了出路
但这并不是特别合适,因为。她删除\
。例子
有没有其他的保存方法\
?
您的 JSON 编码不正确(或传递错误)。
根据 JSON 规范,字符串中的字符
\
后面不能跟数字 4。之后\
,只有:"
- 报价,只是转义报价\
- 反斜杠 - 为自己转义以唯一识别字符串中具有特殊含义的字符序列/
- 直的b
- 象征backspace
n
- 字符line feed
(换行)r
- 字符carriage return
(回车)t
- 制表符u
后跟 4 个 HEX 字符,表示对应的 Unicode 字符(但是可以用这种表示法替换上述字符)是的,
\4
这是一个不正确的条目。我测试的 PHP 解析器和 PostgreSQL 解析器都不接受这样的 JSON。JS 解析器正在尝试处理它
firefox
,但我不确定是什么规则。JSON 本身不会因此而变得正确。正确的条目应该是:
你最好去你的 JSON 的源头询问它为什么格式不正确,而不是试图解决后果。
JSON 特殊字符