从SQL表JSON编码 - > JSON问题
问题描述:
我正在学校作业,我必须将Twitter转储作为SQL并将其保存为JSON(用于D3)。但是,我在使用JSON编码时遇到了一些问题。我能够得到日期,用户,转推,收藏夹等所有功能,但由于某种原因,推文的实际文本只能编码为“文本”。我已经检查过表格,并且其中的所有内容看起来都正确,但出于某种原因,我的编码器没有正确编码文本。下面是我对Twitter的SQL表编码成JSON代码:从SQL表JSON编码 - > JSON问题
<?php
$dsn = 'mysql:host=localhost;dbname=twitter';
define('MYSQL_USER','root');
define('MYSQL_PASS','dismypassword');
$tweets = "SELECT `id`,`date`,`screen_name`,`favorite_count`,`favorited`,'text' as 'textThing' FROM tweets";
$sql = $tweets;
header("Content-Type: application/json");
try {
$db = new PDO($dsn, MYSQL_USER, MYSQL_PASS);
$statement = $db->prepare($sql);
$statement->execute();
$data = array();
while (($row = $statement->fetch(PDO::FETCH_ASSOC))) {
$data[] = $row;
}
echo json_encode($data);
} catch (PDOException $e) {
die('Query failed: ' . $e->getMessage());
}
>
从这个输出生成JSON文件看起来像这样(其中文本被简单地来了? “文”:
[
{
id: "704419321326510080",
date: "2016-02-29 22:33:48",
screen_name: "cscstars",
favorite_count: "0",
favorited: "0",
textThing: "text"
},
{
id: "704419329287331840",
date: "2016-02-29 22:33:50",
screen_name: "Wary12",
favorite_count: "0",
favorited: "0",
textThing: "text"
},
{
id: "704419365588865024",
date: "2016-02-29 22:33:58",
screen_name: "lgib15",
favorite_count: "0",
favorited: "0",
textThing: "text"
},
{
id: "704419366243151874",
date: "2016-02-29 22:33:59",
screen_name: "jacqui4peace",
favorite_count: "0",
favorited: "0",
textThing: "text"
},
答
,我发现我的问题的根源这不是JSON编码器可言,相反,它是在鸣叫文本特殊字符,这是造成功能失效我擦洗后。推特SQL表功能完美工作。
这是如何插在桌子上的?你可以运行选择外部PHP来检查?也许在phpmyadmin。既然你在这里,如果表有正确的数据,'var_dump($ data);''的结果是什么? (你可以限制选择,所以它不会太长) – FirstOne
MySQL正在产生(例如)文本,如:“RT @ Notnow71:正确!妥协是使这个国家的工作,双方*造成僵局#ImWithHerhttps://t.co/YGeâ“ 当我对它进行编码时,它就是简单的”文本“ –
这是'var_dump'中的问题吗?或者你正确地检查数据库?请在var_dump($ data)中输入(至少有一部分)输出...' – FirstOne