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文件的解析:
JQ
读取一行的字段
local address=`jq .employee[0].name tt.json` (address变量是带引号的"Peter")
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.sh (a pipeable JSON parser written in Bash)
https://github.com/dominictarr/JSON.sh
python:
json模块: 用于字符串和python数据类型间进行转换,和数据序列化模块pickle的用法相同
Json模块提供了四个功能:dumps、dump、loads、load
importjson
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需要依赖ezmorph 和commons的lang、logging、 beanutils、collections等组件
org.json包没有其他依赖,完成beans, collections, maps, arrays及xml和json的转换
上面链接文章提供了一个网址 http://www.json.org/,各种语言解析json数据的工具基本都罗列了