在 PHP 中使用JSON

这篇具有很好参考价值的文章主要介绍了在 PHP 中使用JSON。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在 PHP 中使用 JSON

本教程将会教我们如何使用 PHP 编程语言编码和解码 JSON 对象。让我们先来准备环境以便针对 JSON 进行 PHP 编程。

环境

从 PHP 5.2.0 开始默认捆绑了 JSON 扩展并被编译到 PHP 中。

JSON 函数

函数 程序库
json_encode 返回一个值的 JSON 表示形式。
json_decode 解码为一个 JSON 字符串。
json_last_error 返回最后一次出现的错误。

使用 PHP 编码 JSON(json_encode)

PHP 的 json_encode() 函数用于在 PHP 中编码 JSON。编码成功时这个函数返回给定值的 JSON 表示形式,失败则返回 FALSE。

语法:

string json_encode ( $value [, $options = 0 ] )

参数:

  • value: 要编码的值。这个函数只能用于 UTF-8 编码的数据。
  • options: 这个可选值是一个由 JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT 组成的位掩码。

示例:

下面的例子展示了如何使用 PHP 将一个数组转换为 JSON:

<?php
    $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
    echo json_encode($arr);
?>

执行时会生成如下结果:

{"a":1,"b":2,"c":3,"d":4,"e":5}

下面的例子展示了 PHP 对象也可以被转换为 JSON:

<?php
    class Emp {
        public $name = "";
        public $hobbies  = "";
        public $birthdate = "";
    }
    $e = new Emp();
    $e->name = "sachin";
    $e->hobbies  = "sports";
    $e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03"));

    echo json_encode($e);
?>

执行时会生成如下所示结果:

{"name":"sachin","hobbies":"sports","birthdate":"08\/05\/1974 12:20:03 pm"}

使用 PHP 解码 JSON(json_decode)

PHP 的 json-decode() 函数用于在 PHP 中解码 JSON。这个函数返回从 JSON 解码到适当 PHP 类型的值。

语法:

mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])

参数:

  • __json_string:__ 编码的字符串,必须是 UTF-8 编码的数据。
  • assoc: 它是一个布尔类型的参数,当设置为 TRUE 时,返回的对象将会被转换为关联数组。
  • depth: 它是一个整型参数,用于指定递归深度。
  • options: 它是一个 JSON 解码的整型位掩码。支持 JSON_BIGINT_AS_STRING。

示例:

下面例子展示了如何使用 PHP 解码 JSON 对象:

<?php
    $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

    var_dump(json_decode($json));
    var_dump(json_decode($json, true));
?>

执行时生成如下所示结果:文章来源地址https://www.toymoban.com/news/detail-404177.html

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

到了这里,关于在 PHP 中使用JSON的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 性能对比 Go、Python、PHP、C/C++、C# .Net、Java、Node.js、… 等多编程语言

    1. 有人说 Python 性能没那么 Low? 这个我用 pypy 2.7 确认了下,确实没那么差, 如果用 NumPy 或其他版本 Python 的话,性能更快。但 pypy 还不完善,pypy3 在 beta,  所以一般情况,我是说一般情况下,这点比较让人不爽。   2. 有人说怎么没有 C#、Rust、Ruby 这个那个的? 我只想说语

    2024年03月09日
    浏览(66)
  • 全面对比 Python、Go、VB、PHP、C/C++、C#、.Net、Java、… 等多种编程语言的区别

    1. 语言类型: 首先,C/C++、Java 、Python都是 强类型 的语言。强类型语言的定义如下: 强类型语言是一种强制类型定义的语言,即一旦某一个变量被定义类型,如果不经强制转换,那么它永远就是该数据类型。而弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,

    2024年02月03日
    浏览(46)
  • Go语言网络编程入门:TCP、HTTP、JSON序列化、Gin、WebSocket、RPC、gRPC示例

    在本文中,我们将介绍Go语言中的网络编程的不同方式,包括TCP、HTTP、Gin框架、WebSocket、RPC、gRPC的介绍与连接实例,并对所有示例代码都给出了详细的注释,最后对每种模式进行了总结。 TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,提供

    2024年02月16日
    浏览(48)
  • 模拟计算器编程教程,中文编程开发语言工具编程实例

    模拟计算器编程教程,中文编程开发语言工具编程实例 中文编程系统化教程,不需英语基础。学习链接 ​​​​​​https://edu.csdn.net/course/detail/39036 课程安排:初级1 1  初级概述 2  熟悉构件取值赋值 3 折叠式菜单滑动面板编程 4 自定义图形窗口自定义标题栏编程 5 多行文本

    2024年02月08日
    浏览(50)
  • 昨天,“支付宝崩了”上热搜; 4 月编程语言排行榜:PHP 跌至历史最低点;老乡鸡 “开源” 了;微信 WCDB 迎来重大升级

    昨日,有许多网友反映支付宝无法使用,用不了蚂蚁能量收集等功能,#支付宝崩了# 话题冲上微博热搜。 支付宝客服人员回应称,确实有系统异常报错,工作人员正在紧急处理,很快恢复。用户的资金和信息安全不受影响。 昨天下午晚些时候,支付宝已经基本恢复正常。

    2024年04月15日
    浏览(34)
  • php基础学习之分支结构和循环结构(不细讲,来对比一下和两大常用高级编程语言(C++/Java)的细微区别以便记忆)

    编程语言常见分支结构有: if 语句 if-else 语句 if-elseif-else 语句 switch 语句 其中, 除了 if-elseif-else 语句外,另外3中分支语句在php中和C++/Java是一模一样的! 而 if-elseif-else 的唯一不同点就在,【 elseif 】这个既可以合一起写(C++/Java不可以),也可以拆开写成【 else if

    2024年02月19日
    浏览(40)
  • Go语言入门记录:从channel的池应用、sync的Pool、benchmark、反射reflect、json处理、http、性能分析和一些编程习惯

    channel的一对一会阻塞,添加buffer不会阻塞。 buffered Channel实现对象池。 sync.Pool 的介绍。 获取时先去私有对象中获取,如果不存在就在相同Processor中的共享池中获取,如果还没有,则去其他Processor中去获取。 存放时,如果私有对象不存在,就放在私有对象中,如果存在就放在

    2024年02月10日
    浏览(37)
  • Go语言编程教程-基本数据类型

    了解布尔类型 了解整数类型 了解浮点数类型 了解复数类型 了解字符串类型 了解字符类型 类型 名称 取值范围 说明 bool 布尔类型 true 或 false 默认值为 false 类型 名称 取值范围 说明 uint8 8位无符号整型 0 ~ 255 uint16 16位无符号整型 0 ~ 65535 uint32 32位无符号整型 0 ~ 4294967295 uint6

    2024年02月04日
    浏览(43)
  • 你知道Scala编程语言吗?Scala基础教程【建议收藏】

    作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪 Scala是一种

    2023年04月08日
    浏览(70)
  • 编程语言如何推动DeFi成为主流?

    随着DeFi的快速增长,提供DeFi服务的平台和产品也如雨后春笋般纷纷冒头。作为衡量DeFi协议管理资金规模的标准之一,DeFi“总锁仓量”在过去两年一路从100亿美元增长到超400亿美元,期间更是一度冲上1800亿美元的巅峰。但直到今天,智能合约编程语言功能并没有足够完善到

    2024年02月01日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包