PHP 输出 json Web 服务



我是PHP的新手,我来自.net的背景。我正在尝试制作 Web 服务,它将从 URL 中获取参数并处理业务逻辑,然后将其输出到 jSON 中。

这是我的代码

<?php
    $data = '';
    $Site = $_GET['COUNTRY_SITE'];
    $Language = $_GET['LANGUAGE'];
    $data = "{"Site":" . """ . $Site . """ . ","Language":" . """ . $Language . """ . "}";
    //header('Content-type: application/json');
    //echo $data;
    $x =  json_decode($data,true);
    var_dump($x);
?>

我得到低于输出

array(2) {
  ["Site"]=>
  string(5) "India"
  ["Language"]=>
  string(2) "GB"
}

为什么我没有得到这样的输出

{
"Site":"India",
"Language":"GB"
}

如果可能的话,有人可以帮助我并解释

一下吗

您正在手动创建 JSON,然后对其进行解码。事实上,输出是可以预期的。我认为你应该使用PHP工具将你的对象转换为JSON:

<?php
    $data = '';
    $Site = $_GET['COUNTRY_SITE'];
    $Language = $_GET['LANGUAGE'];
    //Associative array
    $data = array("Site" => $Site, "Language" => $Language);    
    $x =  json_encode($data, JSON_PRETTY_PRINT);
    var_dump($x);
?>

替换 var_dump($x);echo $x = json_encode(json_decode($data,true),JSON_PRETTY_PRINT);

笔记:

  1. json_decode($data,true) 这将输出一个数组。
  2. json_encode(json_decode($data,true),JSON_PRETTY_PRINT); 这会在漂亮的视图中将数组更改为 json 格式

输出:

{
    "Site": "s",
    "Language": "ss"
}

你回显出来的是基于你构建的 JSON 字符串的 php 数组,$data。

但是,您应该反转流程并构建一个 php 数组,然后使用 json_encode(( 为您构建字符串。这将确保 json 始终正确格式化。

<?php
$data = [
  'Site' => $_GET['COUNTRY_SITE'],
  'Language' => $_GET['LANGUAGE']
];
header('Content-type: application/json');
echo json_encode($data, JSON_PRETTY_PRINT);

JSON_PRETTY_PRINT 选项将使用空格格式化它,以便阅读起来更愉快,但您可以删除它以压缩输出。

<?php
    $data = '';
    $Site = $_GET['COUNTRY_SITE'];
    $Language = $_GET['LANGUAGE'];
    $data = "{"Site":" . """ . $Site . """ . ","Language":" . """ . $Language . """ . "}";
    //header('Content-type: application/json');
    //echo $data;
    $x =  json_encode(json_decode($data,true),JSON_PRETTY_PRINT);
    var_dump($x);
?>

如果你想要动态的 JSON 结果:

<?php
echo json_encode($_GET,JSON_PRETTY_PRINT);
?>

试试这段代码

<?php
    $data = '';
    $Site = $_GET['COUNTRY_SITE'];
    $Language = $_GET['LANGUAGE'];
    $data =array('Site'=>$Site,'Language'=>$Language);
    header('Content-type: application/json');
    $x =  json_encode($data);
    var_dump($x);
?>

相关内容

  • 没有找到相关文章

最新更新