PHP数组转json和php的json转数组

这篇博客介绍了PHP中json_encode()和json_decode()两个函数的使用,用于将PHP数组转换成JSON格式和将JSON字符串解析成PHP数组。json_encode()函数的参数包括要转换的变量和可选的编码选项,而json_decode()函数则接收JSON字符串,可选择是否将结果解析为关联数组并设置递归深度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHP 中提供了 json_encode() 和 json_decode() 两个函数分别创建和解析 JSON 数据,其中:

  • json_encode():可以将变量转换为 JSON 格式;
  • json_decode():可以对 JSON 格式的字符串进行解析。

1、json_encode() 函数,数组转json

json_encode() 函数能够将一个 PHP 变量转换为 JSON 数据,其语法格式如下:

json_encode(mixed $value, int $options = 0, int $depth = 512)

json_encode(数组, 可选参数JSON_UNESCAPED_UNICODE, 可选参数int $depth = 512)

参数说明如下:

  • $value:要转换的变量,变量可以是任意数据类型;
  • $options:可选参数,默认值为 0,可选值为以下 PHP
    常量:JSON_FORCE_OBJECT、JSON_HEX_QUOT、JSON_HEX_TAG、JSON_HEX_AMP、JSON_HEX_APOS、JSON_INVALID_UTF8_IGNORE、JSON_INVALID_UTF8_SUBSTITUTE、
    JSON_NUMERIC_CHECK、JSON_PARTIAL_OUTPUT_ON_ERROR、JSON_PRESERVE_ZERO_FRACTION、JSON_PRETTY_PRINT、JSON_UNESCAPED_LINE_TERMINATORS、JSON_UNESCAPED_SLASHES、JSON_UNESCAPED_UNICODE、JSON_THROW_ON_ERROR。关于这些常量了解即可,一般不怎么使用,它们的具体含义您可以通过
    JSON 常量查阅;
  • $depth:可选参数,用来设置递归的最大深度,它的值必须大于 0,默认值为 512,同 $options
    参数一样,该参数同样不怎么使用。
<?php
    $arr = [
        "title"     => "JSON教程",
        "author"    => "测试",
        "url"       => "abc123456",
        "catalogue" => [
            "JSON是什么?",
            "JSONP是什么?",
            "JSON语法规则"
        ]
    ];
    echo json_encode($arr,JSON_UNESCAPED_UNICODE );
?>

运行结果
在这里插入图片描述

2、php的json_decode(),json转数组

json_decode() 函数能够解析 JSON 格式的字符串,并将解析后的结果保存到一个变量中,其语法格式如下:

json_decode(string $json, bool $assoc = false, int $depth = 512, int $options = 0): mixed

json_decode(string $json, 可选参数true返回数组, int $depth = 512, 可选参数)

参数说明如下:

  • $json:必填参数,要解析的 JSON 字符串;
  • $assoc:可选参数,默认值为 false,若将值设置为 true,那么 json_decode() 函数将返回一个数组;
  • $depth:可选参数,用来设置递归的最大深度,默认值为 512,也可以设置为其它大于 0 的值;
  • $options:可选参数,默认值为 0,可选值为
    JSON_BIGINT_AS_STRING、JSON_INVALID_UTF8_IGNORE、JSON_INVALID_UTF8_SUBSTITUTE、JSON_OBJECT_AS_ARRAY、JSON_THROW_ON_ERROR
    等常量,可以同时设置多个常量,常量之间使用竖线|进行分隔。有关上述常量的含义,您可以通过 PHP 预定义常量查阅。

若解析成功,json_decode() 函数会返回 JSON 中的数据,若解析失败,或者 JSON 的数据深度超过了递归的限制,则返回 null。

<?php
    $str = '{"title":"JSON教程","author":"123456","url":"abc123","catalogue":["JSON是什么?","JSONP是什么?","JSON语法规则"]}';
    echo "<pre>";
    var_dump(json_decode($str, true));
?>

预览
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值