寫一下json排序的問題:
將得到的資料轉換成json格式傳給ajax,會發現前台得到的資料很有可能和我們在後台的內容』不太一樣『,如果不出意外,json進行了自排序處理,至於按什麼格式排的我還沒研究,當然應該不是字母順序
那如果我們想在前台按照字母順序或者數字順序排序要怎麼做呢?
如果json裡鍵值對以這樣組合 ,排序是不需要擔心的,會安裝id順序排列
如果是陣列型別的json物件,排序可以使用array.sort,
var people = [,,];
function sortbykey(array, key) );
}people = sortbykey(people, 'name');
得到結果是a75,e77,z32按照這個順序的。
那如果不是陣列型別json物件呢,寫兩組資料對比下
data1
=
data2
=
d1
=
json.dumps(data1,sort_keys
=
true
)
d2
=
json.dumps(data2)
d3
=
json.dumps(data2,sort_keys
=
true
)
print
d1
print
d2
print
d3
print
d1
=
=
d2
print
d1
=
=
d3
輸出:
false
true
這裡使用了sort_keys這個引數。
btwindent引數是縮排的意思,它可以使得資料儲存的格式變得更加優雅。
data1
=
d1
=
json.dumps(data1,sort_keys
=
true
,indent
=
4
)
print
d1
輸出:輸出的資料被格式化之後,變得可讀性更強,但是卻是通過增加一些冗餘的空白格來進行填充的。json主要是作為一種資料通訊的格式存在的,而網路通訊是很在乎資料的大小的,無用的空格會佔據很多通訊頻寬,所以適當時候也要對資料進行壓縮。separator引數可以起到這樣的作用,該引數傳遞是乙個元組,包含分割物件的字串。
print
'data:'
,
repr
(data)
print
'repr(data) :'
,
len
(
repr
(data))
print
'dumps(data) :'
,
len
(json.dumps(data))
print
'dumps(data, indent=2) :'
,
len
(json.dumps(data, indent
=
4
))
print
'dumps(data, separators):'
,
len
(json.dumps(data, separators
=
(
','
,
':'
)))
輸出:data:
repr(data) : 30
dumps(data) : 30
dumps(data, indent=2) : 46
dumps(data, separators): 25
通過移除多餘的空白符,達到了壓縮資料的目的,而且效果還是比較明顯的。
另乙個比較有用的dumps引數是skipkeys,預設為false。 dumps方法儲存dict物件時,key必須是str型別,如果出現了其他型別的話,那麼會產生typeerror異常,如果開啟該引數,設為true的話,則會比較優雅的過度。
data
=
print
json.dumps(data,skipkeys
=
true
輸出:
Go語言裡的Json
json是一種輕量級資料交換格式,具有靈活 易於閱讀的特點,在網際網路行業有廣泛的應用。go語言執行時裡自帶了encoding json包,提供了marshal 和unmarshal 兩個函式進行編碼和解碼,兩個函式原型如下 func marshal v inte ce byte,error fun...
Go語言裡的Json
json是一種輕量級資料交換格式,具有靈活 易於閱讀的特點,在網際網路行業有廣泛的應用。go語言執行時裡自帶了encoding json包,提供了marshal 和unmarshal 兩個函式進行編碼和解碼,兩個函式原型如下 func marshal v inte ce byte,error fun...
在java裡拼接JSON
1.錯誤的格式 parenttypesjson 這裡的 有問題,因為這裡需要傳遞陣列,所以是 這個有問題。2.錯誤的格式 parenttypesjson 這裡冒號後面就為空了,拼接還是有問題。3.正確的格式 string typeswithselectcontroljson string paren...