首页 > 解决方案 > 创建 JSON 对象并使用 PHP CURL 访问它在解码时返回空白

问题描述

我正在尝试从表单数据创建一个 JSON 对象并允许从外部服务器访问。如果我尝试解码它,它会返回空白,所以我想我编码错误?

*注意这两个文件在不同的服务器上

index.php:

//Create JSON Object

  $vx_json->base_value = 5000;
  $vx_json->color_code = 'green';

  echo json_encode($vx_json);

这是接收数据的外部php文件

response.php:

// Get results from index.php

$url = 'mysite.com'
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json',));
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

$result = curl_exec($ch);

$response = json_decode($result);
print_r($response);

JSON 响应是空白的,除非我这样做::

print_r($result)

{"base_value":5000,"color_code":"green"}

但如果我这样做

print_r($response); 

我没有得到任何回应,也无法像我通常想要的那样访问数据::

echo $response['base_value'];

我究竟做错了什么?我没有正确编码还是响应 JSON 没有正确解码?

标签: phparraysjsoncurl

解决方案


所以我在传递值之前没有声明 $vx_json 变量,所以它试图创建一个空对象。

$vx_json  = (object)array();

现在它可以通过使用

echo $response->base_value;

推荐阅读