javascript - 如何正确格式化 JSON

标签 javascript php jquery mysql json

我之前问过一个问题,都是围绕着一个JSON格式化的问题。我有一个 PHP 页面,它只是从 MYSQL 数据库中获取行,然后返回它们。但是,我不确定如何格式化它们,所以我得到的所有列都是一组,并且对于每一行,它都会创建一个新的集合。我不确定对此类内容进行编码的常见做法是什么。

例如这就是我想要的(如果它是正确的):

{ "message": [
   {
      "chat":"Hello, world!",
      "time":"2014-05-09 17:32:00",
       "username":"Josue"
   },
   {
      "chat":"This is my second message.",
      "time":"2014-05-09 17:32:05",
      "username":"Josue"
   }
]
}

这样,我可以使用 $.parseAJAX 进行解析,并访问我的数据,例如:data.message[0].chat,它会返回“Hello world!”。

这是我目前正在做的事情:

$SQL = sprintf('SELECT time_sent, chat, username FROM Messages where time_sent >= date(\'%s\')', $last_chat_time);
$result = mysql_query($SQL);

$messages = Array();

while ( $row = mysql_fetch_assoc($result) ) {
    $messages[] = 'chat';
    $messages[] = $row['chat'];
    $messages[] = 'time';
    $messages[] = $row['time_sent'];
    $messages[] = 'username';
    $messages[] = $row['username'];
}

$loopCount = count($chats);

if(count($messages) > 0){
/*
    $sexyJSON = '{message: [';
    for($i = 0; $i < $loopCount; $i++){
        $sexyJSON .= '{"chat":"'.$chats[$i].'","time":"'.$times[$i].'","username":"'.$usernames[$i].'"},';
    }
    $sexyJSON = substr($sexyJSON,0,strlen($sexyJSON)-1);
    $sexyJSON .= ']}';
    $newMessages = $sexyJSON;
    echo $sexyJSON;
    */

     echo json_encode($messages);
}

当我简单地编码我的数组时,它会返回如下内容:

["chat","Hello, world!","time","2014-05-09 17:32:00","username","Josue","chat","hmmm","time","2014-05-09 17:48:34","username","asdf"]

如果要将消息、日期与日期、用户名与键值对中的用户名进行群聊,我需要做什么?

最佳答案

mysql_fetch_assoc 的格式应该是

array('chat'=>'Some chat', 'time_sent'=>'123456', 'username'=>'abcdefg')

json_encode 会直接将其转换为

{"chat":"Some chat", "time_sent":"123456", "username":"abcdefg"}

所以在你的循环中,如果你简单地执行 $mesages[] = $row; 并保持你的 json_encode 调用不变,它应该如上所示工作。但是,您可以更改 SQL 语句,为列指定一个别名,以便 time_sent 仅显示为属性 time

关于javascript - 如何正确格式化 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23575785/

相关文章:

javascript - 使用 insertBefore 后无法移动元素

jquery - 网站移动端添加滑动动画

Javascript:如何将变量的值(而不是引用)传递给函数?

javascript - AngularJS - 如何将纯 JavaScript 插件转换为 Angular 指令(?)

javascript - 小于或等于 NN 的预定义数字的最佳可能组合和

javascript - 如何使用 base-64 源创建 Image 对象?

php - 配置 PHP 应用程序以安全地运行多个站点

javascript - 模拟按住 Ctrl 键

javascript - 模态打开后如何执行函数?

javascript - 扩展 Aloha Editor 的格式插件