【问题标题】:How to create JSON response in PHP file?如何在 PHP 文件中创建 JSON 响应?
【发布时间】:2016-07-08 14:24:47
【问题描述】:

我想在我的第二台服务器上获得 JSON 响应,其域为 example.com,其中 getit.php 文件包含:

$arr = array('antwort' => 'jo');

echo json_encode($arr);

现在,当我尝试使用我的第一台服务器获取它时:

$url = 'http://www.example.com/getit.php';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$antwort = curl_exec($ch);
curl_close($ch);

$antwort = json_decode($antwort);

    echo '<pre>';
    var_dump($antwort);
    echo '</pre>';

我明白了:

object(stdClass)#2 (1) {
  ["antwort"]=>
  string(4) "jo"
}

又不是普通的数组,如何转换成数组?

我已经尝试过$antwort = json_decode(json_encode($antwort), True);,但我只得到一个奇怪的字符串?!

【问题讨论】:

标签: php arrays json object


【解决方案1】:

JSON 的定义是:JavaScript Object Notation。 JavaScript 数组只能有数字键。您的数组具有字符串键,因此必须将其编码为 JavaScript OJBECT,这确实允许字符串键。

告诉 json_decode() 你想要数组:

$arr = json_decode($json, true);
                          ^^^^

根据the docs

你的json_decode(json_encode($antwort))是怎么做到的?返回字符串的唯一方法是对从 curl_exec() 获得的 $antwort 进行编码。

【讨论】:

  • @AnneSchwarz 但是你为什么要一个数组而不是一个对象。对象比数组更容易处理
  • 怎么回事?只有当您实际上拥有一个带有方法和诸如此类的真正对象时,对象才会更容易。一个只存储一些键/值的对象本质上与一个数组是相同的。
  • 嗯,我一直使用普通数组,我认为它们更容易阅读/处理
  • 哈哈,我必须承认我喜欢这样一个事实,即您可以减少 2 次击键来引用属性并且代码看起来更简洁。无论如何,我们应该处于面向对象的世界中
猜你喜欢
  • 1970-01-01
  • 2015-03-19
  • 2015-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
  • 2021-04-27
  • 1970-01-01
相关资源
最近更新 更多