【发布时间】:2014-12-21 22:06:22
【问题描述】:
我正在尝试使用 mysql DB 为 iPhone 制作一个简单的 journalview 应用程序。 我正在使用 php 连接到数据库并将数据编码为 json。 我正在使用一个非常简单的 3 列数据库:
- 身份证
- 主题
- 留言
当我从表中选择 id 和 subject 时,JSON 数据显示正确。 当我选择所有内容或单独选择消息时,我只看到一个白屏。 消息列是文本数据类型,应该可以有奇怪的符号(/、\、¨、$、%、空格、行、...) 我可以让消息数据显示的唯一方法是在我的连接文件中执行以下操作:
while($r = mysql_fetch_assoc($resultset))
{
//$r = preg_replace("!\r?\n!", " ",$r);
$r= json_encode($r);
$records[] = $r;
}
//Output the data as JSON
echo json_encode($records);
}
}
但是,返回的数据充满了反斜杠、\r、\n,看起来不像是有效的json:
[{"id":"248","subject":"General","message":"Dear Diary\r\n\r\nThis is a test.\r\nDoes it work or not?!\r\n\r\nGoodbye.\r\n\r\n\r\nD"},{"id":"249","subject":"General","message":"Hi\r\n\r\nThis is Test number 2.\r\nDoes it Work?\r\n\r\n\/\/ goodbye \\\\"}]
如果我清空我的消息列并输入没有特殊符号的普通文本,它可以正常工作,所以我猜这就是问题所在。 但是,如果消息可以包含特殊字符和反斜杠,我会更好,这可能吗?
【问题讨论】:
-
提供导致问题的确切数据。
json_encode考虑到它需要的一切。 -
嗨 zerkms 我已经编辑了我的帖子并添加了我的 json 输出,只有 2 行,但它们都引起了问题。
-
"\r, \n 并且看起来不像是有效的 json" --- 是什么让你这么想?
-
@zerkms 你说得对,我用 json 验证器验证它是正确的。