我试图为一个客户端修复一些数据,但是却被json_encoding (已经是json_encoded数据)进一步破坏了,最后得到了一个充满了不可用字符串的数据库。
一条这样断的绳子看起来像这样
"[{\"datum_von\":\"2012\",\"datum_bis\":\"2012\",\"organisation\":\"A s.r.o., školící středisko pro vrcholný management\",\"hauptfaecher\":\"Top management\"},{\"datum_von\":\"2011\",\"datum_bis\":\"2011\",\"organisation\":\"Goethe Institut\",\"hauptfaecher\":\"Německý jazyk\r\n\"}]"任何关于修正这个问题的建议都将不胜感激。
发布于 2018-10-28 16:21:27
如果你加倍json_encoded,为什么不试试双json_decoding呢?它对我有用-唯一的问题是我从引用的代码中所做的C&P在末尾包含\n\r,这破坏了json。一旦这2被移除,它就能正常工作。
你的儿子-
"[{\"datum_von\":\"2012\",\"datum_bis\":\"2012\",\"organisation\":\"A s.r.o., školící středisko pro vrcholný management\",\"hauptfaecher\":\"Top management\"},{\"datum_von\":\"2011\",\"datum_bis\":\"2011\",\"organisation\":\"Goethe Institut\",\"hauptfaecher\":\"Německý jazyk\"}]"保存为"e.json“。替换DB读。
<?php
$j=file_get_contents("e.json");
print_r(json_decode(json_decode($j)));
?>给出
ivan@darkstar:~$ php e.php
PHP Fatal error: sodium_init() in Unknown on line 0
Array
(
[0] => stdClass Object
(
[datum_von] => 2012
[datum_bis] => 2012
[organisation] => A s.r.o., školící středisko pro vrcholný management
[hauptfaecher] => Top management
)
[1] => stdClass Object
(
[datum_von] => 2011
[datum_bis] => 2011
[organisation] => Goethe Institut
[hauptfaecher] => Německý jazyk
)
)读取您的记录-如果双json_decode不返回bool false,则重新编码一次并发送回服务器并更新该记录。
发布于 2018-10-28 16:00:47
如果您在php中工作,请使用函数stripslashes(),检查http://php.net/manual/en/function.stripslashes.php以获得有关函数的更多详细信息。
它将从Json对象中删除斜杠。
https://stackoverflow.com/questions/53033313
复制相似问题