json数据格式了解
json数据格式介绍:
https://en.wikipedia.org/wiki/JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式
json语法是JavaScript对象表示法语法的子集:
- 键值对
- 逗号分隔
- 花括号保存对象
- 方括号数据
json的键(字段名)是字符串(双引号)
json的值可以是数字, 字符串, 逻辑值(true, false), 数组(方括号), 对象(花括号嵌套), null
json文件类型: ".json"
栗子:
{ "employees": [ {"name": "jone", "age": 30, "quit": true}, {"name": "Peter", "age": 24, "quit": false}, ], "department":[ {"name": "tieba", "emp_num": 300, "location":2} {"name": "baike", "emp_num": 200, "location": 3} ] }
json文件的解析:
shell: http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4131068
-
- JQ
- 读取一行的字段
- local address=`jq .employee[0].name tt.json` (address变量是带引号的"Peter")
- 读取一行的字段
- JQ
local address=`jq .employee[0].name tt.json | sed 's/\"//g' ` (用sed将双引号替换掉)
-
-
- 查看json文件内容
- jq . tt.json
- 通过键查找值
- jq .employee tt.json
- select查询
- jq '.employee[] | select (.name=='jone')' tt.json
- 查看json文件内容
- JSON.sh (a pipeable JSON parser written in Bash)
https://github.com/dominictarr/JSON.sh
-
python:
json模块: 用于字符串和python数据类型间进行转换,和数据序列化模块pickle的用法相同
Json模块提供了四个功能:dumps、dump、loads、load
import json data = {"name": "police", "phone": [110, 911]} # json数据等同python字典 # 写入json格式到文件 with open('test.json', 'w') as of: json.dump(data, of) # 读取json文件 with open('test.json', 'r') as of: data = json.load(of)
java
参照:http://json.cn/json/code.html, 还包括php及javaScript的构造解析方法
两种方法:json_lib http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html
json_lib需要依赖ezmorph 和commons的lang、logging、 beanutils、collections等组件
org.json http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/24/3096437.html
org.json包没有其他依赖,完成beans, collections, maps, arrays及xml和json的转换
上面链接文章提供了一个网址 http://www.json.org/,各种语言解析json数据的工具基本都罗列了