我想获得像http://api.androidhive.info/json/movies.json这样的JSON输出,我用PHP编写了这段代码:
<?php
$con=mysqli_connect("localhost","root","","ebrahim");
$sql="SELECT * FROM movie";
$result=mysqli_query($con,$sql);
$response= array();
while($row=mysqli_fetch_array($result,MYSQLI_NUM)){
$product = array();
$product["title"]=$row[1];
$product["image"]=$row[2];
$product["rating"]=$row[3];
$product["releaseyear"]=$row[4];
$product["genre"]=$row[5];
array_push($response,$product);
}
echo json_encode($response);
?>
但我的输出是这样的:enter image description here
请帮我制作一个标准的JSON。
答案 0 :(得分:2)
我不完全确定“标准”JSON的含义。您的输出已经是JSON。但是,如果要为浏览器(或任何其他客户端)提供有关内容的提示,请设置正确的内容类型。正如Bart指出的那样,可以通过添加适当的标题来完成:
header('Content-Type: application/json');
此外,如果您想要JSON输出的“漂亮”格式,请使用json_encode的options参数:选项JSON_PRETTY_PRINT
应该有助于实现这一目标。所以不应该echo json_encode($response);
而应该放
echo json_encode($response, JSON_PRETTY_PRINT);
进入你的脚本。自PHP 5.4起可以使用JSON_PRETTY_PRINT
。
答案 1 :(得分:2)
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
function RotatingImage(x, y, spriteUrl, rotationSpeed) {
this.XPos = x;
this.YPos = y;
this.Sprite = new Image();
this.Sprite.src = spriteUrl;
this.RotationSpeed = rotationSpeed;
this.CurrentRotation = 0;
}
RotatingImage.prototype.Draw = function(ctx) {
ctx.save();
this.CurrentRotation += 0.1;
ctx.translate(this.XPos + this.Sprite.width/2, this.YPos + this.Sprite.height/2);
ctx.rotate(this.CurrentRotation);
ctx.translate(-this.XPos - this.Sprite.width/2, -this.YPos - this.Sprite.height/2);
ctx.drawImage(this.Sprite, this.XPos, this.YPos);
ctx.restore();
}
var RotatingImages = [];
RotatingImages.push(new RotatingImage(50, 75, "http://static.tumblr.com/105a5af01fc60eb94ead3c9b342ae8dc/rv2cznl/Yd9oe4j3x/tumblr_static_e9ww0ckmmuoso0g4wo4okosgk.png", 1));
RotatingImages.push(new RotatingImage(270, 25, "http://static.tumblr.com/105a5af01fc60eb94ead3c9b342ae8dc/rv2cznl/Yd9oe4j3x/tumblr_static_e9ww0ckmmuoso0g4wo4okosgk.png", 1));
RotatingImages.push(new RotatingImage(190, 180, "http://static.tumblr.com/105a5af01fc60eb94ead3c9b342ae8dc/rv2cznl/Yd9oe4j3x/tumblr_static_e9ww0ckmmuoso0g4wo4okosgk.png", 1));
RotatingImages.push(new RotatingImage(100, 270, "http://static.tumblr.com/105a5af01fc60eb94ead3c9b342ae8dc/rv2cznl/Yd9oe4j3x/tumblr_static_e9ww0ckmmuoso0g4wo4okosgk.png", 1));
setInterval(function() {
ctx.fillStyle = "#000"
ctx.fillRect(0, 0, canvas.width, canvas.height);
for (var i = 0; i < RotatingImage.length; i++) {
var rotatingImage = RotatingImages[i];
rotatingImage.Draw(ctx);
}
}, (1000 / 60));
将echo json_encode($response, JSON_PRETTY_PRINT);
常量作为JSON_PRETTY_PRINT
函数的第二个参数传递。
此外,使用以下代码将响应的内容类型设置为JSON格式:
json_encode
因此,浏览器认识到响应是JSON资源。
答案 2 :(得分:0)
PHP有一个功能。使用JSON_PRETTY_PRINT,您可以阅读更多相关信息here