不需要的JSON响应


Unwanted JSON Response

我在数据库中使用这个小型JSON函数。

<script>
$(document).ready(function () {
   var url = "Database.php";
   $("#jsondata tbody").html("");
   $.getJSON(url, function (data) {
       $.each(data.users, function (i, user) {
           var songdetails = "<p>"
                   + "<p>" + user.Title + "</p>"
                   + "<p>" + user.ArtistNumber + "</p>"
                   + "<p>" + user.TrackTime + "</p>"
                   + "<p>" + user.Composer + "</p>"
                   + "<p>" + user.Lyricist + "</p>"
               + "</p>";
           $(songdetails).appendTo("songlist");
       });
   });
});
</script>

这在浏览器中产生了这个,我不想要/不需要它。

{"users":[{"Title":"Anyway","ArtistNumber":"2","TrackTime":"167","Composer":"JohnGlaze","作词人":"Kellee玉米","文件位置":"公共/无论如何.mp3","分级":"0","分数":"[0,0,0,0]","免费":"零"},{"标题":"一Way Heartbeats","ArtistNumber":"4","TrackTime":"187","Composer":"BillBobs","作词人":"MichaelMcEachern","FileLocation":"public/OneWayHeartbeats.mp3","rated":"0","scores":"[0,0,0,0]","free":"0}",{"Title":"Parallel我","ArtistNumber":"3","TrackTime":"192","Composer":"相当革命","作词人":"相当Revolution","FileLocation":"private/PallelMe.mp3",《rated》:"0",《scores》:"[0,0,0,0]",《free》:"1"},{《Title》:"中毒Oxygen","ArtistNumber":"3","TrackTime":"177","Composer":"相当革命","作词人":"相当Revolution","FileLocation":"public/ConeedOxygen.mp3",《rated》:"0",《scores》:"[0,0,0,0]",《free》:"零"},{"Title":"Xmas《监狱蓝调》、《艺人编号》:"1"、《TrackTime》:"192"、《作曲家》:"Steve佩里","作词人":"史蒂夫Perry","FileLocation":"private/XmasPrisonBlues.wma","rated":"0","scores":"[0,0,0,0]","free":"1"}]}

有什么关于如何隐藏或删除它的想法吗?感谢

这是Database.php:

<?php
$Hostserver = "localhost";
$databUser = "ee2800";
$databPass = "secret";
$databDatabase = "ee2800";
$database = new mysqli ($Hostserver, $databUser, $databPass, $databDatabase);
if ($database) {
mysqli_select_db($database, "ee2800");
//echo ("Successfully connected to database!");
} else {
    die ("<strong>Error:</strong> Failed to connect to the database.");
}
$var = array();
$sql = "SELECT * FROM songs";
$result = mysqli_query($database, $sql);
while ($obj = mysqli_fetch_object($result)) {
    $var[] = $obj;
}
echo '{"users":' . json_encode($var) . '}';
?>

使用jQuery 1.10.2歌曲列表元素在这里找到

<?php 
             // The system queries the database to obtain a result set containing no more than 10 artists //
            if ($result = $database->query( "SELECT * FROM `artist` ORDER BY `artist`.`ArtistNumber` ASC LIMIT 10")) {
                while ($row = $result->fetch_row()) {
                    echo "<div id='artist{$row[2]}'>";
                    echo "<p>Artist: {$row[0]} {$row[1]}</p>";
                    echo '<p><a href="#Songs" id="song' . $row[2] . '"><div id= songlist> </div> </a></p>';
            //div tag 'songlist' adds all data from json and pastes into this div id // 
             //      echo '<p><a href="#" id="songlist' . $row[2] . '">Songs</a></p>'; 
        //onlick function echo'd anchor tag// 
                    echo "</div>";
// Songs dont display onclick however retrieved data using jSON can't seem to target where to put the information //
                }
            }
            $database->close();
        ?>

基本上,每当我运行这些文件时,我每次都会在浏览器中得到一个开头所说的长字符串作为响应。

您的PHP似乎返回了一个有效的json字符串,但它并没有自动转换为json对象,以便javascript将其作为对象进行处理。

您可以尝试将解析强制为类似以下的json对象

 $.getJSON(url, function (data) {
   data = $.parseJSON(data);
   $.each(data.users, function (i, user) {