JSON的应用和注意事项

精选30+云产品,助力企业轻松上云!>>> hot3.png

  • 目录
  • 1. 前言
  • 2. JSON基本语法
  • 2.1 JSON四大基本原则
  • 2.2 JSON的优缺点
  • 2.2.1JSON的优点
  • 2.2.2JSON的缺点
  • 2.3JSON的使用
  • 2.3.1 JSON数据格式和serialize数据格式的异同和使用
  • 2.3.2PHP操作函数加解密JSON
  • 2.4JSON实例讲解
  • 2.4.1一维数组到JSON数据格式的转换
  • 2.4.2多维数组到JSON数据格式的转换
  • 2.4.3对象到JSON数据格式的转换
  • 2.4.4转换JSON数据格式到对象类型
  • 2.4.5转换JSON数据格式到数组类型
  • 3. 总结

1.前言

JSON就是javascript object notation,是一种轻量级的数据交换格式。

2.JSON基本语法

2.1 JSON四大基本原则

  • 并列的数据之间用逗号(“,”)分割。
  • 映射用冒号(“:”)表示。
  • 并列数据的集合(数组)用方括号(“[]”)表示。
  • 映射的集合(对象)用大括号(“{}”)表示。

比如:

[
{“城市”:”广州”,”编号”:1009},
{“城市”:”深圳”,”编号”:1010}
]

2.2 JSON的优缺点

2.2.1JSON的优点

数据格式简单,易于读写,格式都是压缩的,占用带宽小。

支持多种语言,包括C、C#、ColdFusion、Java、javaScript、php等服务端语言,便于解析和不同语言之间的通信。

2.2.2JSON的缺点

要求字符集必须是unicode,约束强。

语法过于严谨,必须遵循语法四个原则。

2.3JSON的使用

2.3.1 JSON数据格式和serialize数据格式的异同和使用

相同点

都是把其他数据类型转换成可以传输的字符串。

都是结构性数据。

不同点

serialize序列化后数据格式保存数据原有类型。

json数据格式要更加简洁。

使用场景

json适合数据量大,不要求保留原有数据类型的情况下使用。

serialize适合存储带有加密方式的数据串,防止数据被中途截取反序列化破解。

2.3.2PHP操作函数加解密JSON

  • 加密:json_encode()
  • 解密:json_decode()

2.4JSON实例讲解

2.4.1一维数组到JSON数据格式的转换

其中索引数组定义

<?php
$array=array('name','age');
echo json_encode($array);
?>

返回数组:

["name","age"]

其中关联数组定义

$array=array(1=>‘name’,2=>’age’);

返回对象:

{"1":"name","2":"age"}

2.4.2多维数组到JSON数据格式的转换

其中多维索引数组定义

<?php

$array=array(
1=>[
'fangzhijie',
'nan'
],
2=>'age'
);
echo json_encode($array);
?>

返回对象,对象里面包含数组:

{"1":["fangzhijie","nan"],"2":"age"}

其中多维关联数组定义

<?php

$array=array(
1=>[
1=>'fangzhijie',
2=>'nan'
],
2=>'age'
);
echo json_encode($array);
?>

返回对象:

{"1":{"1":"fangzhijie","2":"nan"},"2":"age"}

2.4.3对象到JSON数据格式的转换

<?php

class test{
public $name='fangzhijie';
private $age=23;
protected $sex='nan';
public function getName(){
return $this->name();
}
}

echo json_encode(new test());
?>

返回对象:

{"name":"fangzhijie"}

注意:对象转换为json数据,只转换公有变量,私有变量不转换。

2.4.4转换JSON数据格式到对象类型

<?php
$jsonStr = '{"1":{"1":"fangzhijie","2":"nan"},"2":"age"}';
print_r(json_decode($jsonStr));
?>

返回对象:

stdClass Object
(
    [1] => stdClass Object
        (
            [1] => fangzhijie
            [2] => nan
        )
    [2] => age
)

2.4.5转换JSON数据格式到数组类型

<?php
$jsonStr = '{"1":{"1":"fangzhijie","2":"nan"},"2":"age"}';
print_r(json_decode($jsonStr,1));
?>

返回数组:

Array
(
    [1] => Array
        (
            [1] => fangzhijie
            [2] => nan
        )
    [2] => age
)

注意:把json字符串变成数组,需要在第二个参数true

3.总结

通过本次学习,对json的转换有了更进一步的认识,无论是数组OR对象转json、还是json转数组OR对象,我们都基本掌握了其方法,并且清楚认识到数组转换为json字符串受到数组类型(索引OR关联)的影响,这个坑在以后的开发中需要注意。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值