【问题标题】:JSON respone from CURL request from HTTP API - HTML transform来自 HTTP API 的 CURL 请求的 JSON 响应 - HTML 转换
【发布时间】:2013-02-14 20:09:29
【问题描述】:

我能够将 CURL 请求发送到测试 http API 并获得响应。

我的 CURL 请求是这样的:

$request = "";
$param['auth-userid'] = '449735';
$param['api-key'] = 'apikey';
$param['domain-name'] ='sambalpurodisha';
$param['tlds']='com';
foreach ($param as $key => $val) {$request.= $key ."=".urlencode($val);    
$request .="&";}
$request=substr($request,0,strlen($request)- 1 );
$url = "https://test.httpapi.com/api/domains/available.json?".$request;

$ch = curl_init($url);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec( $ch );
curl_close( $ch );

我收到如下回复:
{"sambalpurodisha.com":{"status":"available","classkey":"domcno"}}

现在我已经尝试了一切以更易读的方式格式化结果,例如 域名 - sambalpurodisha.com 可供购买。

我在堆栈中尝试了许多建议,但没有一个对我有用。我可以寻找的方向

【问题讨论】:

    标签: api parsing curl json


    【解决方案1】:

    您需要将返回的 JSON 字符串解码为 JSON 对象或关联数组,然后对其进行迭代:

    $rawJSON = '{"sambalpurodisha.com":{"status":"available","classkey":"domcno"}}';
    
    $jsonArray = json_decode($rawJSON, true);
    foreach($jsonArray as $key => $val) {
    
        echo 'Domain: ' . $key . '  status: ' . $val['status'] . "\n";
    
    }
    

    【讨论】:

    • 问题是我不知道变量中会有什么值。 domain-name 可以是任何东西,status->value 和 classkey -> value 会不断变化。所以 $rawjason = 有预期的变量。
    • 应该可以的。只需将从 cURL 返回的响应分配给 rawJSON。这里的硬编码字符串只是一个例子。
    • 好的,我已经尝试添加 $rawJSON=$result;然后 $jsonAraay =.................................} 但我得到了相同的结果,即 '{"sambalpurodisha.com":{ “状态”:“可用”,“classkey”:“domcno”}}';而不是预期的结果。我需要做一些不同的事情吗?
    • 也许我误解了你的问题。我不能给你一个完整的代码示例,因为你上面问题中的 URL (test.httpapi.com) 似乎没有接受请求。当您尝试我提供的解析代码时,究竟是什么回显到控制台?
    • 是的,我认为我的代码搞砸了,因此没有得到结果。现在它按预期工作正常。
    猜你喜欢
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 2012-11-06
    相关资源
    最近更新 更多