深入理解fastjson

2021-09-11 06:14:00 字數 928 閱讀 6414

fastjosn在遍歷輸出是預設是無序的因為這樣是最快的

但是如果想保持有序,fastjson也提供了解決辦法

就是加乙個引數feature.orderedfield

例項如下

val text: string = json.tojsonstring(json.parseobject(str,feature.orderedfield),

serializerfeature.writenulllistasempty,

serializerfeature.writenullstringasempty,

serializerfeature.writenullnumberaszero,

serializerfeature.writenullbooleanasfalse,

serializerfeature.writemapnullvalue,

serializerfeature.prettyformat)

跟蹤fastjson原始碼,在com.alibaba.fastjson.parser.defaultjsonparser 類中475行發現:

原因是:在fastjson會進行feature.orderfield的判斷

else if (ch == '{') { // 減少巢狀,相容android  

lexer.nexttoken();

final boolean parentisarray = fieldname != null && fieldname.getclass() == integer.class;

jsonobject input = new jsonobject(lexer.isenabled(feature.orderedfield));

``

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

mysql 索引深入理解 深入理解MySql的索引

為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...