我正在尝试为客户端修复一些数据,而是通过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\"}]"
任何解决此问题的技巧将不胜感激。
答案 0 :(得分:1)
如果您将json_encoded
加倍,为什么不尝试将json_decoding
加倍?它对我有用-唯一的问题是我在引用的代码中所做的C&P在结尾处包含\ n \ r,这会破坏json。一旦删除了那两个,它就可以正常工作。
您的json-
"[{\"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” ..代替数据库读取。
<?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
不返回布尔值false
,则重新编码一次,然后发送回服务器并更新该记录。
答案 1 :(得分:-1)
如果您使用的是php,请使用函数stripslashes() 检查http://php.net/manual/en/function.stripslashes.php以获得有关功能的更多详细信息。
它将从Json对象中删除斜线。