php基础系列----7php操作json数据

json经常用于接口向外传递数据,而php最重要的一个用法就是作为数据接口向外传递数据;因此了解php对json数据的操作很重要;

json简介

  • json是javascript对象;
  • 是一种数据格式;
  • 通常用于传递数据,常见用于接口传递数据;
  • 结构简单,解析方便,传递速度要比xml块很多;
  • json是一种纯文本格式;
  • json只能使用utf-8格式的编码,其他编码是不支持的;

php对json操作之json_encode();

json_encode():作用是将数组或者对象转换为json的数据格式;
下面详解:

1:将数组封装为json格式:

$json = json_encode($array);

比如:
phpjson.php

<?php
$arr = array(
        "name" => "tom",
        "age" =>22,
        );

echo json_encode($arr);

运行一下就可以看到将数组转换为了json格式的数据:
这里写图片描述

2:将对象转换为json格式:

$json = json_encode($obj);

实例:

<?php
class PhpJson{
    public $name = "lili";
    public $age = 18;
}

$obj = new PhpJson;
echo json_encode($obj);

执行一下:
这里写图片描述

3:将索引数组强制转换为json:

$json = json_encode(object($arr));

实例:

<?php
$arr = array(1,2,3,4);

echo json_encode((object)$arr);

执行一下:
这里写图片描述
可以看到强制转换索引数组的时候会吧数组的下标当做key进行转换;

4:构造json字符串

<?php
$json = "{'name':'kedr','age':30}";

echo $json;

注意外面的引号和里面key的引号不能冲突了;

php解析json数据之json_decode()

json_decode():解析json数据格式,解析为数组或者对象,默认状态下解析为对象;

1:解析为数组:

            $array = json_decode($json,true); //将会解析成数组;
<?php
//先创建一个json对象
class PhpJson{
public $name = "lili";
public $age = 18;
}

$obj = new PhpJson;

$json = json_encode($obj);
//在此处打印解析之后的结果,把第二个参数设置为true;则会解析成数组;
print_r(json_decode($json,true));

执行结果:
这里写图片描述
可以看到json数据被解析为数组;

2:解析为对象;

            $obj = json_decode($json); //默认将会解析成对象;
<?php
//先创建一个json对象
class PhpJson{
    public $name = "lili";
    public $age = 18;
}

$obj = new PhpJson;

$json = json_encode($obj);

//此时打印解析之后的结果,第二个参数是false或者不设置,则解析为对象
print_r(json_decode($json));

执行结果:
这里写图片描述
可以看到打印的数据类型是object;

php向外提供json数据

php向外提供数据的方式:

php向外提供json数据只需要把转换好得json数据echo一下即可;

php向外传递json数据一次只能传递一个json数据;

所以php需要通过json格式向外传递多个数据的时候必须将所有数据封装在一个json对象中传递;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值