介绍
JSONLite 是 JSON 的简化版。减少字符输出的同时,仍保持数据有效性。
建议PHP版本 >= 5.2.0 。
特性
Js 兼容模式,兼容Js语法。取消了不必要的双引号。
Strict 强类型模式,提供强类型输出与解析,可用于与强类型语言通讯。
如 1.0 序列化和解序列后的类型均为 double,不会转换为 int 1。
Min 最小化模式,最小化输出数据,可用于日志打印。
较为精确的错误位置和信息提示。
解析时更为显性的暴漏格式错误
示例代码:
$value = array(
'code' => '123',
'msg' => 'true str',
'null' => null,
'new' => '',
'double' => 1.0,
);
// serialize
// js
echo jsonlite_encode($value);
// {code:123,msg:"true str","null":0,"new":"",double:1}
// min
echo jsonlite_encode($value, JSONLITE_MODE_MIN);
// {code:123,msg:true str,"null":,new:,double:1}
// strict
echo jsonlite_encode($value, JSONLITE_MODE_STRICT);
// {code:"123",msg:true str,"null":null,new:,double:1.0}
// unserialize
$jsonlite = '{code:123,msg:true str,"null":null,new:,double:1}';
$value = jsonlite_decode($jsonlite);
var_export($value);
/**
* array (
* 'code' => 123,
* 'msg' => 'true str',
* 'null' => NULL,
* 'new' => '',
* 'double' => 1,
* )
*/
// work with json
$value = array(
'code' => '123',
'msg' => 'true str',
'null' => null,
'new' => '',
'double' => 1.0,
);
$json = json_encode($value); // ATTENTION:encode with json
// {"code":"123","msg":"true str","null":null,"new":"","double":1}
$value = jsonlite_decode($json);
var_export($value);
/**
* array (
* 'code' => 123,
* 'msg' => 'true str',
* 'null' => NULL,
* 'new' => '',
* 'double' => 1,
* )
*/
体积对比
根据测试数据计算,实际情况请另行估算。
模式
JSON
JSONLite
变化量
变化率
array_js
92
92
0
0.00%
array_strict
92
74
-18
19.57%
array_min
92
70
-22
23.91%
map_js
111
97
-14
12.61%
map_strict
111
83
-28
25.23%
map_min
111
81
-30
27.03%
标签:JSONLite
分享
window._bd_share_config = {
"common": {
"bdSnsKey": {},
"bdText": "",
"bdMini": "2",
"bdMiniList": [],
"bdPic": "",
"bdStyle": "1",
"bdSize": "24"
}, "share": {}
};
with (document)0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' ~(-new Date() / 36e5)];\r\n \r\n \r\n \r\n \r\n \u8f6f\u4ef6\u9996\u9875\r\n \u8f6f\u4ef6\u4e0b\u8f7d\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\nwindow.changyan.api.config({\r\nappid: 'cysXjLKDf',
conf: 'prod_33c27aefa42004c9b2c12a759c851039'
});