我想从PHP脚本返回JSON。
我只是重复结果吗?我必须设置内容类型头吗?
我想从PHP脚本返回JSON。
我只是重复结果吗?我必须设置内容类型头吗?
当前回答
是的,你需要使用echo来显示输出。Mimetype: application / json
其他回答
设置访问安全性也很好——只需将*替换为您希望能够访问它的域。
<?php
header('Access-Control-Allow-Origin: *');
header('Content-type: application/json');
$response = array();
$response[0] = array(
'id' => '1',
'value1'=> 'value1',
'value2'=> 'value2'
);
echo json_encode($response);
?>
这里有更多的例子:如何绕过Access-Control-Allow-Origin?
用header(' content -type: application/json')设置内容类型;然后对数据进行回显。
返回JSON的完整的PHP代码如下:
$option = $_GET['option'];
if ( $option == 1 ) {
$data = [ 'a', 'b', 'c' ];
// will encode to JSON array: ["a","b","c"]
// accessed as example in JavaScript like: result[1] (returns "b")
} else {
$data = [ 'name' => 'God', 'age' => -1 ];
// will encode to JSON object: {"name":"God","age":-1}
// accessed as example in JavaScript like: result.name or result['name'] (returns "God")
}
header('Content-type: application/json');
echo json_encode( $data );
这是一个简单的PHP脚本,返回男性女性和用户id作为json值将是任何随机值,因为你调用脚本json. PHP。
希望能有所帮助,谢谢
<?php
header("Content-type: application/json");
$myObj=new \stdClass();
$myObj->user_id = rand(0, 10);
$myObj->male = rand(0, 5);
$myObj->female = rand(0, 5);
$myJSON = json_encode($myObj);
echo $myJSON;
?>
将域对象格式化为JSON的一种简单方法是使用Marshal Serializer。 然后将数据传递给json_encode,并根据需要发送正确的Content-Type报头。 如果您正在使用Symfony这样的框架,则不需要手动设置标头。在那里您可以使用JsonResponse。
例如,处理Javascript的正确内容类型应该是application/ Javascript。
或者如果你需要支持一些相当老的浏览器,最安全的是文本/javascript。
对于所有其他用途,如移动应用程序,使用application/json作为内容类型。
这里有一个小例子:
<?php
...
$userCollection = [$user1, $user2, $user3];
$data = Marshal::serializeCollectionCallable(function (User $user) {
return [
'username' => $user->getUsername(),
'email' => $user->getEmail(),
'birthday' => $user->getBirthday()->format('Y-m-d'),
'followers => count($user->getFollowers()),
];
}, $userCollection);
header('Content-Type: application/json');
echo json_encode($data);