PHP之JSON数据交互

目录

1 对变量进行 JSON 编码

2 对 JSON 格式的字符串进行解码

3 json的简易使用

3.1 数组到json

3.2 json到数组

3.3 对象转json

3.4 json转对象

3.5 json转数组


1 对变量进行 JSON 编码

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

1 value
待编码的 value ,除了resource 类型之外,可以为任何数据类型。

所有字符串数据的编码必须是 UTF-8。

Note:

PHP implements a superset of JSON as specified in the original » RFC 7159.

2 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, 

JSON_PRESERVE_ZERO_FRACTION, JSON_UNESCAPED_UNICODE, JSON_PARTIAL_OUTPUT_ON_ERROR。 关于 

JSON 常量详情参考JSON 常量页面。

3 depth
设置最大深度。 必须大于0。

 

版本说明
7.1.0对 Double 的值进行编码时,使用 serialize_precision 代替 precision
5.6.6options 参数增加常量: JSON_PRESERVE_ZERO_FRACTION
5.5.0增加 depth 参数。
5.5.0增加了 JSON_PARTIAL_OUTPUT_ON_ERROR 选项。
5.5.0失败时返回的值从 null 字符串改成 FALSE
5.4.0options 参数增加常量: JSON_PRETTY_PRINTJSON_UNESCAPED_SLASHES, 和 JSON_UNESCAPED_UNICODE
5.3.3options 参数增加常量:JSON_NUMERIC_CHECK
5.3.0增加 options 参数.

 

2 对 JSON 格式的字符串进行解码

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

1 json
待解码的 json string 格式的字符串。

这个函数仅能处理 UTF-8 编码的数据。

Note:

PHP implements a superset of JSON as specified in the original » RFC 7159.

2 assoc
当该参数为 TRUE 时,将返回 array 而非 object 。

3 depth
指定递归深度。

4 options
JSON解码的掩码选项。 现在有两个支持的选项。 第一个是JSON_BIGINT_AS_STRING, 用于将大整数转为字符

串而非默认的float类型。第二个是 JSON_OBJECT_AS_ARRAY, 与将assoc设置为 TRUE 有相同的效果。

3 json的简易使用

3.1 数组到json

<?php
 $score=['math'=>88,
         'chinese'=>98,
         'english'=>87];
$json=json_encode($score);
echo $json;
?>

3.2 json到数组

<?php
 $score=['math'=>88,
         'chinese'=>98,
         'english'=>87];
$json=json_encode($score);
echo $json;
$arr=json_encode($json);
var_dump($arr);
?>

3.3 对象转json

<?php
 class Student{
	public $name='lwqbrell';
	public $age=22;
	public $sex='boy';
}
$s=new Student();
$json=json_encode($s);
echo $json;
?>

3.4 json转对象

<?php
 class Student{
	public $name='lwqbrell';
	public $age=22;
	public $sex='boy';
}
$s=new Student();
$json=json_encode($s);
echo $json;
$obj=json_decode($json);
var_dump($obj);
?>

3.5 json转数组

(原本数据为对象的,可以通过json_decode()转为数组,注:将json_decode的第二个参数设为true)

<?php
 class Student{
	public $name='lwqbrell';
	public $age=22;
	public $sex='boy';
}
$s=new Student();
$json=json_encode($s);
echo $json;
$obj=json_decode($json,true);
var_dump($obj);
?>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值