【问题标题】:How to take out int value from JSON object?如何从 JSON 对象中取出 int 值?
【发布时间】:2016-11-22 04:06:00
【问题描述】:

我现在正在使用 Laravel 5,但遇到以下问题。我得到了数据库查询的响应:

[{"id":1}]

我想取出 1 作为 int 或 string。有什么想法吗?

我尝试如下解决这个问题:

$json = (DB query);       
$data = json_decode($json);     
$final = $data[0]->id;

响应是:

json_decode() 期望参数 1 是字符串,给定数组

【问题讨论】:

  • 你试过用json_decode解码它吗?
  • 你有没有尝试过什么? (谷歌搜索例如 xD)
  • 是的,我用谷歌搜索了一下,但我不明白任何例子,这就是我在这里问的原因
  • json_decode('[{"id": 1}]', true)[0]['id']

标签: php json laravel laravel-5


【解决方案1】:

如您所说,您拥有的字符串是 JSON 格式,因此您需要使用json_decode 在 PHP 中访问它。

方括号指的是一个数组,大括号指的是该数组中的一个对象,所以您要查找的是数组中第一个元素(即元素0)的id 值。

<?php
$json = '[{"id":1}]';
$data = json_decode($json);

echo $data[0]->id;
// 1

【讨论】:

    【解决方案2】:

    这就是你所需要的。

    $response = json_decode($response); // Decode the JSON
    $string = $response[0]->id;         // Save the value of id var
    

    【讨论】:

    • 外部数组丢失
    • 糟糕,这就是为什么我们不在脑海中json_decode,已编辑。
    【解决方案3】:

    试试这个

    $json_array = '[{"id":1}]';
    $data = json_decode($json_array);
    print_r($data); // To display the result array
    

    【讨论】:

      【解决方案4】:

      如果我没有误解你的问题,你只需要解码它。

      $json = '[{"id":1}]';
      $decodedObject = json_decode($json);
      

      然后你可以循环遍历数组并对你的数据做一些事情:

      foreach($decodedObject as $key => $value) {
          $id = $value->id;
      }
      

      如果你使用 Laravel,为什么不使用 Eloquent 模型?

      【讨论】:

      • 我对 laravel 很陌生,你能告诉我如何使用 Eloquent 模型来做到这一点吗?
      • 我希望你会问!你有什么疑问?向我展示您的查询,我将向您展示如何使用 Eloquent 模型进行查询。
      猜你喜欢
      • 2020-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多