2017-06-21 102 views
1

我创建了一个使用etsy api显示商店信息的网站。我试图访问重建的json字符串的个别值。为此,我需要将返回的字符串转换为对象。我唯一能看到的方法是json_decode($response_body);,但我似乎无法得到这个工作。当我使用该函数时,当我尝试获取它的类型时,它返回undefined/NULL。返回的字符串看起来像这样:{"count":3,"results":[{"listing_id":252525252,"state":"active","user_id":1111111,"category_id":1234567,"title":"Title of product","description":"This is a description"}。有什么我正在做的完全错误?下面是我使用的代码:当使用etsy API时,json_decode返回undefined/null

$url = "https://api.etsy.com/v2/shops/shopname/listings/active?api_key=".$apikey; 
$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$response_body = curl_exec($ch); 
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
if (intval($status) != 200) throw new Exception("HTTP $status\n$response_body"); 
$reponse_fixed = json_decode($response_body); 
echo $response_fixed; 
+0

这是整个JSON字符串,还是只是一个片段?因为作为一个片段,它是无效的JSON - 至少,它缺少一个关闭''' –

+0

从'var_dump($ response_body)'发布输出(从页面源复制,以便保留空白) –

+0

@MichaelBerkowski对不起,这是无效的。我只是试图手工输入。返回的Json似乎是有效的,虽然 – McMatt

回答

0

json_decode返回null可以是可能的,如果已经被作为参数传递的数据是无效的JSON或空。 所以请确保响应是正确的JSON格式