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")

          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

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数据的工具基本都罗列了

     

 

posted @ 2016-08-08 23:35  fkissx  阅读(400)  评论(0编辑  收藏  举报