迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > PHP >

如何在 PHP 中从 JSON 中提取数据

作者:迹忆客 最近更新:2023/03/23 浏览次数:

在本文中,我们将介绍在 PHP 中从 JSON 中提取数据的方法。

  • 使用 json_decode() 函数

在 PHP 中使用 json_decode() 函数从 JSON 中提取数据

我们将使用内置函数 json_decode() 从 JSON 中提取数据。我们将把 JSON 中的字符串转换为一个对象或数组来提取数据。使用该函数的正确语法如下。

json_decode($jsonString, $assoc, $depth, $options);

内置函数 json_decode() 有四个参数。其参数的详细信息如下:

参数   说明
$jsonString 强制 它是 JSON 编码的字符串,我们要从中提取数据。
$assoc 可选 它是一个布尔变量,如果它为 true,函数将返回一个关联数组。如果为 TRUE,函数将返回一个关联数组,如果为 FALSE,函数将返回对象。如果为 FALSE,函数将返回对象。
$depth 可选 它是一个整数。它告诉我们指定的深度。
$options 可选 它指定了 JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR 的位码。

如果 JSON 字符串的格式不正确,该函数返回 NULL。它根据 $assoc 参数返回一个关联的数组或对象。

下面的程序显示了我们如何使用 json_decode() 函数从 JSON 字符串中提取数据。

<?php 
$jsonString ='{
    "firstName":"Olivia",
    "lastName":"Mason",
    "dateOfBirth":
    {
        "year":"1999",
        "month":"06",
        "day":"19"
    }
}';
$data = json_decode($jsonString);
echo("The data is: \n");
var_dump($data);
?> 
    

由于我们没有传递 $assoc 参数,函数将返回一个对象。

输出:

The data is: 
object(stdClass)#1 (3) {
  ["firstName"]=>
  string(6) "Olivia"
  ["lastName"]=>
  string(5) "Mason"
  ["dateOfBirth"]=>
  object(stdClass)#2 (3) {
    ["year"]=>
    string(4) "1999"
    ["month"]=>
    string(2) "06"
    ["day"]=>
    string(2) "19"
  }
}

如果我们传递了 $assoc 参数,函数将返回一个关联数组。

<?php 
$jsonString ='{
    "firstName":"Olivia",
    "lastName":"Mason",
    "dateOfBirth":
    {
        "year":"1999",
        "month":"06",
        "day":"19"
    }
}';
$data = json_decode($jsonString, true);
echo("The data is: \n");
var_dump($data);
?> 

输出:

The data is: 
array(3) {
  ["firstName"]=>
  string(6) "Olivia"
  ["lastName"]=>
  string(5) "Mason"
  ["dateOfBirth"]=>
  array(3) {
    ["year"]=>
    string(4) "1999"
    ["month"]=>
    string(2) "06"
    ["day"]=>
    string(2) "19"
  }
}

如果函数返回了一个对象,我们可以通过以下方式访问数据。

<?php 
$jsonString ='{
    "firstName":"Olivia",
    "lastName":"Mason",
    "dateOfBirth":
    {
        "year":"1999",
        "month":"06",
        "day":"19"
    }
}';
$data = json_decode($jsonString);
echo("The first name is: \n");
echo $data->firstName;
?> 

该函数将从提取的数据中返回名字。

输出:

The first name is: 
Olivia

如果函数返回的是一个数组,我们可以用以下方式直接访问数据。

<?php 
$jsonString ='{
    "firstName":"Olivia",
    "lastName":"Mason",
    "dateOfBirth":
    {
        "year":"1999",
        "month":"06",
        "day":"19"
    }
}';
$data = json_decode($jsonString, true);
echo("The first name is: \n");
echo $data['firstName'];
?> 

该函数将从提取的数据中返回名字。

输出:

The first name is: 
Olivia

我们还可以遍历数组。

<?php 
$jsonString ='{
    "firstName":"Olivia",
    "lastName":"Mason",
    "dateOfBirth": "19-09-1999"
}';
$data = json_decode($jsonString, true);
foreach ($data as $key=> $data1) {
    echo $key, " : ";
    echo $data1, "\n";
}
?> 

函数将返回提取的数据。

输出:

firstName : Olivia
lastName : Mason
dateOfBirth : 19-09-1999

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 C++ 中通过掷骰子生成随机值

发布时间:2023/04/09 浏览次数:169 分类:C++

本文解释了如何使用时间因子方法和模拟 C++ 中的掷骰子的任意数方法生成随机数。了解它是如何工作的以及它包含哪些缺点。提供了一个 C++ 程序来演示伪数生成器。

在 C++ 中使用模板的链表

发布时间:2023/04/09 浏览次数:158 分类:C++

本文解释了使用模板在 C++ 中创建链表所涉及的各个步骤。工作程序演示了一个链表,该链表使用模板来避免在创建新变量时声明数据类型的需要。

在 C++ 中添加定时延迟

发布时间:2023/04/09 浏览次数:142 分类:C++

本教程将为你提供有关在 C++ 程序中添加定时延迟的简要指南。这可以使用 C++ 库为我们提供的一些函数以多种方式完成。

在 C++ 中创建查找表

发布时间:2023/04/09 浏览次数:155 分类:C++

本文重点介绍如何创建查找表及其在不同场景中的用途。提供了三个代码示例以使理解更容易,并附有代码片段以详细了解代码。

如何在 C++ 中把字符串转换为小写

发布时间:2023/04/09 浏览次数:63 分类:C++

介绍了如何将 C++ std::string 转换为小写的方法。当我们在考虑 C++ 中的字符串转换方法时,首先要问自己的是我的输入字符串有什么样的编码

如何在 C++ 中确定一个字符串是否是数字

发布时间:2023/04/09 浏览次数:163 分类:C++

本文介绍了如何检查给定的 C++ 字符串是否是数字。在我们深入研究之前,需要注意的是,以下方法只与单字节字符串和十进制整数兼容。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便