首页 后端开发 PHP问题 php json常用方法有哪些

php json常用方法有哪些

Sep 18, 2021 pm 04:56 PM
json php

php json常用方法:1、json_encode(),用于对JSON格式的字符串进行解码;2、json_encode(),用于对JSON格式的字符串进行解码;3、json_last_error(),用于返回最后发生的错误。

php json常用方法有哪些

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

php json常用方法:

1、json_encode()

PHP json_encode() 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,否则返回 FALSE 。

语法

string json_encode ( $value [, $options = 0 ] )
登录后复制

示例:

<?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}
登录后复制

2、json_encode()

json_decode() 函数用于对 JSON 格式的字符串进行解码,并转换为 PHP 变量。

语法:

mixed json_decode ($json_string [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
登录后复制

参数:

  • json_string: 待解码的 JSON 字符串,必须是 UTF-8 编码数据

  • assoc: 当该参数为 TRUE 时,将返回数组,FALSE 时返回对象。

  • depth: 整数类型的参数,它指定递归深度

  • options: 二进制掩码,目前只支持 JSON_BIGINT_AS_STRING 。

示例:

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

   var_dump(json_decode($json));
   var_dump(json_decode($json, true));
?>
登录后复制

输出结果:

object(stdClass)#1 (5) {
    [&quot;a&quot;] =&gt; int(1)
    [&quot;b&quot;] =&gt; int(2)
    [&quot;c&quot;] =&gt; int(3)
    [&quot;d&quot;] =&gt; int(4)
    [&quot;e&quot;] =&gt; int(5)
}

array(5) {
    [&quot;a&quot;] =&gt; int(1)
    [&quot;b&quot;] =&gt; int(2)
    [&quot;c&quot;] =&gt; int(3)
    [&quot;d&quot;] =&gt; int(4)
    [&quot;e&quot;] =&gt; int(5)
}
登录后复制

3、json_last_error()

json_last_error — 返回最后发生的错误

语法:

json_last_error()
登录后复制

如果有,返回 JSON 编码解码时最后发生的错误。会返回一个整型(integer),这个值会是以下的常量之一:

JSON 错误码
常量含义可用性
JSON_ERROR_NONE没有错误发生
JSON_ERROR_DEPTH到达了最大堆栈深度
JSON_ERROR_STATE_MISMATCH无效或异常的 JSON
JSON_ERROR_CTRL_CHAR控制字符错误,可能是编码不对
JSON_ERROR_SYNTAX语法错误
JSON_ERROR_UTF8异常的 UTF-8 字符,也许是因为不正确的编码。PHP 5.3.3
JSON_ERROR_RECURSIONOne or more recursive references in the value to be encodedPHP 5.5.0
JSON_ERROR_INF_OR_NANOne or more NAN or INF values in the value to be encodedPHP 5.5.0
JSON_ERROR_UNSUPPORTED_TYPE指定的类型,值无法编码。PHP 5.5.0
JSON_ERROR_INVALID_PROPERTY_NAME指定的属性名无法编码。PHP 7.0.0
JSON_ERROR_UTF16畸形的 UTF-16 字符,可能因为字符编码不正确。PHP 7.0.0

示例:

&lt;?php
// 一个有效的 json 字符串
$json[] = &#39;{&quot;Organization&quot;: &quot;PHP Documentation Team&quot;}&#39;;

// 一个无效的 json 字符串会导致一个语法错误,在这个例子里我们使用 &#39; 代替了 &quot; 作为引号
$json[] = &quot;{&#39;Organization&#39;: &#39;PHP Documentation Team&#39;}&quot;;


foreach ($json as $string) {
    echo &#39;Decoding: &#39; . $string;
    json_decode($string);

    switch (json_last_error()) {
        case JSON_ERROR_NONE:
            echo &#39; - No errors&#39;;
        break;
        case JSON_ERROR_DEPTH:
            echo &#39; - Maximum stack depth exceeded&#39;;
        break;
        case JSON_ERROR_STATE_MISMATCH:
            echo &#39; - Underflow or the modes mismatch&#39;;
        break;
        case JSON_ERROR_CTRL_CHAR:
            echo &#39; - Unexpected control character found&#39;;
        break;
        case JSON_ERROR_SYNTAX:
            echo &#39; - Syntax error, malformed JSON&#39;;
        break;
        case JSON_ERROR_UTF8:
            echo &#39; - Malformed UTF-8 characters, possibly incorrectly encoded&#39;;
        break;
        default:
            echo &#39; - Unknown error&#39;;
        break;
    }

    echo PHP_EOL;
}
?&gt;
登录后复制

输出结果:

Decoding: {&quot;Organization&quot;: &quot;PHP Documentation Team&quot;} - No errors
Decoding: {&#39;Organization&#39;: &#39;PHP Documentation Team&#39;} - Syntax error, malformed JSON
登录后复制

推荐学习:《PHP视频教程

以上是php json常用方法有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南

CakePHP 项目配置 CakePHP 项目配置 Sep 10, 2024 pm 05:25 PM

CakePHP 项目配置

CakePHP 日期和时间 CakePHP 日期和时间 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和时间

CakePHP 文件上传 CakePHP 文件上传 Sep 10, 2024 pm 05:27 PM

CakePHP 文件上传

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

讨论 CakePHP 讨论 CakePHP Sep 10, 2024 pm 05:28 PM

讨论 CakePHP

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

See all articles