1、介绍
JSON 或者 称它为JavaScript 对象表示法是一种轻量级的基于文本的开放标准,被设计用于可读可写的数据交换,多种语言支持包括 C,C++,Java,Python,Perl 等等。它是从 JavaScript 脚本语言中演变而来;文件名扩展是 .json;Json 的网络媒体类型是application/json;统一标示符类型(Uniform Type Identifier)是 public.json
2、JSON使用场景
3、JSON语言特点
4、JSON基本语法
示例:
{ “School”: [ { "Location":"Shanghai", "Type": "985", "Name": "FuDan University" }, { "Location":"Zhengzhou", "Type": "211", "Name": "Zhengzhou University" } ] }
5、JSON数据类型
类型 描述
6、JSON在PHP和Python中的使用
6.1 PHP解码与编码JSON
PHP 的 json_encode() 函数用于在 PHP 中编码 JSON,编码成功时这个函数返回给定值的 JSON 表示形式,失败则返回 FALSE
string json_encode ($value[ , $option = 0]);
参数:
示例: 使用 PHP 将一个数组转换为 JSON: 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ?> 执行时会生成如下结果: {"a":1,"b":2,"c":3,"d":4,"e":5} 相应的PHP对象一样可以被转换成JSON location= "Zhengzhou"; $s->type= "211"; $s->name= "Zhengzhou University"; echo json_encode($s); ?> 输出为: {"location":"Zhengzhou","type":"211","name":"Zhengzhou University"}
PHP 的 json_decode() 函数用于在 PHP 中解码 JSON。这个函数返回从 JSON 解码到适当 PHP 类型的值
mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
参数:
示例: 使用 PHP 解码 JSON 对象 结果: object(stdClass)#1 (5) { ['location'] => string(Zhengzhou) ['type'] => string(211) ['name'] => string(Zhengzhou University) } array(3) { ['location'] => string(Zhengzhou) ['type'] => string(211) ['name'] => string(Zhengzhou University) }
6.2 Python解码与编码JSON
在使用 Python 编码和解码 JSON 之前,我们需要安装一个可用 JSON 模块。下载和安装 Demjson
Python 的 encode() 函数用于将 Python 对象编码为 JSON 字符串表示。
demjson.encode(self, obj, nest_level=0) 示例: 下面的例子展示了使用 Python 将数组转换为 JSON: #!/usr/bin/python import demjson data = [ {"location":"Zhengzhou","type":"211","name":"Zhengzhou University"} ] json = demjson.encode(data) print json 执行时会生成如下所示结果: [{"location":"Zhengzhou","type":"211","name":"Zhengzhou University"}]
使用 Python 解码 JSON(decode)
Python 可以使用 demjson.decode() 函数处理 JSON 解码。这个函数返回从 JSON 解码到适当 Python 类型的值
demjson.decode(self, txt) 示例: 下面的例子展示了如何使用 Python 解码 JSON 对象。 #!/usr/bin/python import demjson json = '{"location":"Zhengzhou","type":"211","name":"Zhengzhou University"}'; text = demjson.decode(json) print text 执行时生成如下所示结果: {u"location":"Zhengzhou",u"type":"211",u"name":"Zhengzhou University"}