文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-02-27 20:05

关注

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


在 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
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯