【问题标题】:API response in Laravel decode issueLaravel 解码问题中的 API 响应
【发布时间】:2017-12-27 14:54:55
【问题描述】:

我有以下路线:

Route::get('/verifica-dominio', function() {
$dom = Input::get('dominio');
$dominio = explode('.', Input::get('dominio'));
$name= $dominio[0];
$tld = $dominio[1];
$url =  'https://api.cloudns.net/domains/check-available.json?auth-id=1243&auth-password=KNK-dn5.&name=' . $name . '&tld[]=' . $tld;
$json = file_get_contents($url, true, stream_context_create(['socket' => ['bindto' => '0:0']]));
$j = json_decode($json);
return var_dump($j);

});

它返回这个对象

object(stdClass)#1023 (1) { ["provola.com"]=> object(stdClass)#1024 (1) { ["status"]=> int(0) } }

如何在我的代码中获得 status=1?

【问题讨论】:

  • 你不应该返回 var_dump ...按照你的设想编写代码!
  • 试试这个$array = get_object_vars($j); var_dump(array);,看看你得到了什么!
  • 当然 json 提供这个响应 {"provola.com":{"status":0}} 但如果我尝试从状态中提取 0 得到 ILLEGAL STRING 错误
  • @Maraboc 返回此数组(1) { ["provola.com"]=> object(stdClass)#1024 (1) { ["status"]=> int(0) } }
  • 然后你可以像这样访问状态:$array[$tld]->status!

标签: php json rest laravel-5


【解决方案1】:

你可以使用 json_decode() ,它接受一个 JSON 编码的字符串并将其转换为一个 PHP 变量。

$j = json_decode($json, TRUE);
print_r($j);

你的php部分可以使用php数组来处理数据

这是常见的格式

<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
echo "<pre>";
print_r(json_decode($json, true));

?>

这个输出是:

Array
(
    [a] => 1
    [b] => 2
    [c] => 3
    [d] => 4
    [e] => 5
)

更多信息

http://php.net/manual/en/function.json-decode.php

【讨论】:

    【解决方案2】:

    TRUE 作为第二个参数传递给json_decode(),使其将JSON 解码为数组而不是对象:

    $j = json_decode($json, TRUE);
    print_r($j);
    

    输出:

    Array
    (
        [provola.com] => Array
            (
                [status] => 0
            )
    )
    

    现在一切都变得更加清晰和易于处理。 $j['pravola.com']['status'] 是您要查找的值。

    如果不清楚,请阅读 PHP arrays 并坚持使用 "Accessing array elements with square bracket syntax" 部分。

    我猜密钥 'pravola.com' 是您在参数 tld 中传递给远程 API 的内容。如果是这种情况,那么您可以使用$j[$tld]['status'] 来获取您需要的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      • 1970-01-01
      • 2020-02-24
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多