gpt4 book ai didi

php - json_decode(json_encode(一个索引数组)) 给出 NULL

转载 作者:行者123 更新时间:2023-11-29 04:54:08 30 4
gpt4 key购买 nike

我使用 json_encode 对用户输入的 testarea 内容进行编码这是它在 mysql 中的存储方式(在“aaa”之后有一个返回行)

{"content":"aaa
bbb"}

现在,当我从数据库中获取内容并尝试使用 json_decode 对其进行解码时,我得到的是 NULL,而不是预期的结果。

有什么问题吗? PHP 中的错误?

编辑 1:更多细节

$data =array('content'=>$textareaText);
$addres_insert = "INSERT INTO `rtable` (`data`) VALUES ('".json_encode($data)."');";
$rows = mysql_query($addres_insert);

然后获取内容

$query = "SELECT * FROM  `rtable` WHERE id =  '".$id."'";
$rows = mysql_query($query);
if ( $rows ){
$row = mysql_fetch_array($rows);
$res['data'] = json_decode($row['data']);//i tryed substr($row['data'],3) but didn't work
}

最佳答案

JavaScript 和 JSON 不允许在字符串中包含换行符。你需要逃避他们。

json_encode() 应该会自动为您转义它们。

这是我使用 PHP 交互式 shell 上提供的 JSON 代码的输出:

php > $json = '{"content":"aaa
php ' bbb"}';
php > var_dump(json_decode($json, true));
NULL

正如你所看到的,当我转义你的行返回时它工作得很好:

php > $json = '{"content":"aaa\n bbb"}';
php > var_dump(json_decode($json, true));
array(1) {
["content"]=>
string(8) "aaa
bbb"
}

这也在上一个与类似问题相关的问题中得到进一步讨论:Problem when retrieving text in JSON format containing line breaks with jQuery

关于php - json_decode(json_encode(一个索引数组)) 给出 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8353749/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com