json字符串和xml的 比較
json是ajax前戲,在前後端傳輸數據都要用到json
json是一種輕量級的數據交換格式,
(JavaScript Objects Notation ,js對象標記),與JavaScript有關,
獨立於編程語言的文本格式來存儲和表示數據,
json.dumps()序列化得到字符串,放到磁盤裏,
python支持的數據類型, int,str,list,tuple,dict,set
在python中單引號,與雙引號沒有區別
在json中數據格式,都是雙引號,
info = {‘name‘:‘gu ‘,‘age‘:10} print(type(info))#<class ‘dict‘>import json ret=json.dumps(info) print(type(ret))#<class ‘str‘> print(ret)#{"name": "gu ", "age": 10}
把序列化的數據寫到文件裏,json.dumps() 得到的都是字符串,
#把序列化的數據寫到文件裏,文件名就是info.txt f=open(‘info.txt‘,‘w‘) data=f.write(ret)#把序列化的ret文件存到文件裏 f.close()
在磁盤中就有info.txt
從磁盤的文件中讀取json格式的數據,
#從磁盤中讀取json格式的文件 f=open(‘info.txt‘)#讀取文件, data=f.read()#得到數據json格式的數據 dict = json.loads(data)#從json格式的數據反序列化得到python格式的數據,前提,是要反序列的數據必須是json格式,雙引號才行, print(dict[‘name‘])#gu
----
json對象和json字符串。
json對象就是JavaScript對象的一個子集,
js的數據類型有,null,number ,str,undefind,array(數組),data,bool, { “”:“”}
json 裏有null(空),number,string,bool,array,{ “”:“”}
再json中只認 雙引號的字符串 ,
總結: json字符串就是js對象加上雙引號,
為什麽要單列出json數據類型,在web應用, 前後端數據交換,後端是python語言,前端是js數據,就涉及到數據交換,或者,python語言與java語言交流,都要用json數據格式來交換,都用json字符串,
------
stringify 與parse方法
json.parse(“json字符串”),把一個json字符串反序列為javascript對象,在前端裏用,
在前端html 文件中,console.log(JSON.parse(‘{"name":"egon"}‘)); 得到一個object,name:egon
json.stringify(js對象),把JavaScript值序列化為json字符串,在後端使用
console.log(json.stringify([11,22,33])) 得到一個string類型,
console.log(JSON.stringify({‘name‘:"egon"}))); 把不符合條件的先轉化為符合條件的json格式
console.log(JSON.stringify(typeof{"name":"egon"}));
----
xml 數據格式
在2001年以前數據交換是用xml的,
xml和json都使用結構化方法來標記數據,
在xml有節點,節點套節點,還可以收起來, ,類似於HTML的結構存數據
json類似於 用字典的格式存數據,
json沒有xml結構清晰,
在數據交換,json的代碼量更小,xml在數據量大的時候代碼量非常大,
在線格式代碼的工具,bejson,sojson ,可以把亂了的json數據格式格式化整齊的代碼,層級結構就清晰了,
www.bejson.com
json數據格式,代碼量少,易讀,
在ajax就要用到json,
ajax 異步JavaScript和xml,(Asynchronous javas and xml)
json字符串和xml的 比較