1. 程式人生 > >json字符串和xml的 比較

json字符串和xml的 比較

讀取 def 編程語言 使用 總結 ati color ota www

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的 比較