PHP JSON

接下来我们将学习如何使用 PHP 语言来编码和解码 JSON 对象

PHP JSON 环境配置

在 php 5.2.0 及以上版本已经内置 JSON 扩展

PHP JSON 函数

函数 描述
json_encode 对 PHP 对象或数组进行 JSON 编码
json_decode 对 JSON 格式的字符串进行解码,转换为 PHP 对象或数组
json_last_error 返回最后发生的错误
json_last_error_msg 返回最有发生错误的字符串格式

json_encode

PHP json_encode() 用于对 PHP 对象或数组进行 JSON 编码

如果执行成功返回 JSON 数据,否则返回 FALSE

语法

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

参数

参数 说明
value 要编码的值,该函数只对 UTF-8 编码的数据有效
options 可是一些常量组成的二进制掩码

options 可以使用的常量如下:

序号 常量
1 JSON_HEX_QUOT
2 JSON_HEX_TAG
3 JSON_HEX_AMP
4 JSON_HEX_APOS
5 JSON_NUMERIC_CHECK
6 JSON_PRETTY_PRINT
7 JSON_UNESCAPED_SLASHES
8 JSON_FORCE_OBJECT

范例

下面的范例演示了如何将 PHP 数组转换为 JSON 格式数据

main.php

<?php

/*
 * filename: main.php
 * author: 简单教程(www.twle.cn)
 * Copyright © 2015-2065 www.twle.cn. All rights reserved.
*/

$arr = array(
    'name' => "腾讯", 
    'site' => "http://www.qq.com", 
    'products' => array("腾讯 QQ", "微信","腾讯企业邮箱")
);

echo json_encode($arr);

运行以上代码,输出结果为:

$ php main.php
{"name":"\u817e\u8baf","site":"http:\/\/www.qq.com","products":["\u817e\u8baf QQ","\u5fae\u4fe1","\u817e\u8baf\u4f01\u4e1a\u90ae\u7bb1"]}

下面的代码演示了如何将 PHP 对象转换为 JSON 格式数据

main.php

<?php

/*
 * filename: main.php
 * author: 简单教程(www.twle.cn)
 * Copyright © 2015-2065 www.twle.cn. All rights reserved.
*/

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("08/05/1974 12:20:03"));

echo json_encode($e);

运行以上范例,输出结果如下

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

json_decode

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

语法

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

参数

参数 说明
json_string 待解码的 JSON 字符串,必须是 UTF-8 编码数据
assoc 当该参数为 TRUE 时,将返回数组,FALSE 时返回对象
depth 整数类型的参数,它指定递归深度
options 二进制掩码,目前只支持 JSON_BIGINT_AS_STRING

范例

以下范例演示了如何解码 JSON 数据

<?php

$json = '{ "name":"简单教程", "founder_at":"2017-8-8", "site":"www.twle.cn"}';

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

运行以上范例,输出结果如下

$ php main.php
class stdClass#1 (3) {
  public $name =>
  string(12) "简单教程"
  public $founder_at =>
  string(8) "2017-8-8"
  public $site =>
  string(11) "www.twle.cn"
}

array(3) {
  'name' =>
  string(12) "简单教程"
  'founder_at' =>
  string(8) "2017-8-8"
  'site' =>
  string(11) "www.twle.cn"
}
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.