新鮮出爐的萬能值變數庫 dxsvalue
開源地址:https://github.com/suiyunonghen/dxsvalue 萬能值變數,其目的是將 Json,MsgPack 等編碼型別都可以使用本庫來進行操作處理
用法
go get github.com/suiyunonghen/dxsvalue
1、NewValue
v := dxsvalue.NewValue(VT_Object)
v.SetKeyString("Name","不得閒")
v.SetKeyInt("Age",36)
v.SetKeyFloat("Weight",23.5)
//新增一個陣列
arrv := v.SetKey("Children",VT_Array)
//陣列中增加一個物件
child := arrv.SetIndex(0,VT_Object)
child.SetKeyString("Name","Child1")
child.SetKeyString("Sex","boy")
child.SetKeyInt("Age",3)
//陣列中增加一個物件
child = arrv.SetIndex(1,VT_Object)
child.SetKeyString("Name","Child2")
child.SetKeyString("Sex","girl")
child.SetKeyInt("Age",3)
fmt.Println(string(Value2Json(v,nil)))
以上的程式碼最終的輸出結果為
{
"Name": "不得閒",
"Age": 36,
"Weight": 23.5,
"Children": [
{
"Name": "Child1",
"Sex": "boy",
"Age": 3
},
{
"Name": "Child2",
"Sex": "girl",
"Age": 3
}
]
}
2、NewValueFromJson
使用本函式主要是從 JSON 中構建一個 DxValue 物件進行操作,有兩個引數,引數 2 指定是否使用 cache,如果使用 了 cache,之後可以使用 FreeValue 對 Value 進行回收,此時使用的 Value 都是 cache 中的物件結構,用法:
str := `{"Result":0,"Name":"不得閒","Age":36,"Weight":167.3,"arr":[ {"gg":23},23 ]}` v,err := dxsvalue.NewValueFromJson([]byte(str),true) if err != nil{ fmt.Println("發生錯誤:",err) } defer dxsvalue.FreeValue(v)
3、獲取值
DxValue 可以使用 String,Int,Bool,Float,DateTime,GoTime 等來獲取簡單型別 Value 的相對 應的資料值,相應的使用 SetXXX 函式來設定相應的資料值,AsString,AsInt 等可以用來獲取相應的 key 對應的值
獲取某個節點的值,可以使用 ValueByName() 來查詢到某個節點,然後相應的使用 AsXXX 等函式來獲取,同時也可以 使用 ValueByPath 獲取一個路徑下面的節點,比如要獲取 a/b/c ValueByPath('a','b','c'),相應的也有 StringByPath,BoolByPath 等
4、設定值 使用 SetXX 類的函式,SetKeyXXX 型別的主要用來設定 K-V 結構的資料設定主要針對 Object 型別,SetIndex 型別主 要針對陣列類的資料設定
5、檔案儲存以及格式化
使用 Value2File 可以儲存到 Json 檔案,使用 Value2FormatJson 可以格式化到 json
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- 優化機能修正BUG CrossApp1.1.2新鮮出爐優化ROSAPP
- 2014年3月新鮮出爐的最佳 JavaScript 工具庫JavaScript
- vCloud Director演示視訊新鮮出爐薦Cloud
- 15個新鮮出爐的 Photoshop 文字效果教程
- 新鮮出爐的8月前端面試題前端面試題
- 熱門API介面它來啦 新鮮出爐API
- 11個新鮮出爐的jQuery影像滑塊外掛jQuery
- 新鮮出爐:金亨泰《NIKKE:勝利女神》遊戲評測遊戲
- 15款新鮮出爐的實用網頁設計工具網頁
- 日立機器人新鮮出爐,欲挑戰軟銀Pepper機器人
- 快看!新鮮出爐的蘋果手機TP錢包安裝教程蘋果
- 10款強大的jQuery/HTML5應用新鮮出爐jQueryHTML
- 收藏!第三屆強網杯報名指南新鮮出爐。
- 正式支援Transformer與TensorBoard,PyTorch 1.2新鮮出爐ORMORBPyTorch
- 全部python工具,新鮮出爐,拿走不謝,別客氣Python
- SIMULIA 官方技術論壇全年時間表新鮮出爐!
- GoogleWifi路由器測試報告新鮮出爐GoWiFi路由器測試報告
- 新鮮出爐的Roguelike卡牌遊戲《瘋狂之門》現招募測試玩家!遊戲
- 23套新鮮出爐的網站和手機介面 PSD 素材網站
- 25款新鮮出爐的實用網頁設計工具大合集網頁
- 2024 年 2 月海外新應用下載榜新鮮出爐!
- 新鮮出爐!2017 Google Play Awards 提名名單揭曉Go
- ? 全球著名**網站 Pornhub 2019 年度報告新鮮出爐!網站
- “偽人工智慧”三大特徵新鮮出爐,對號入座閱讀人工智慧特徵
- ESLint可共享配置釋出,團隊自定義ESLint規則新鮮出爐EsLint
- 新鮮出爐:appium2.0+ 單點觸控和多點觸控新的解決方案APP
- 撒花!吳恩達《Machine Learning Yearning》中文版新鮮出爐!吳恩達Mac
- 本週份AI論文推薦新鮮出爐!真的很skr了~AI
- 機器學習十大熱文新鮮出爐,這個月你該讀哪篇?機器學習
- Win7預裝版桌面小工具TOP5新鮮出爐Win7
- 2020年,新鮮出爐的Apple Search Ads新手指南(上)APP
- 2020年,新鮮出爐的Apple Search Ads新手指南(下)APP
- 新鮮出爐的一線網際網路公司Java高階面試題總結!Java面試題
- 2016年新鮮出爐的20款網頁開發工具推薦網頁
- C++變數總結束 | 輸出各種變數的值C++變數
- Windows Build 18855版新鮮出爐 終於加入了這個夢寐以求的功能WindowsUI
- 5個效能測試工具哪個更好用?對比結果新鮮出爐!
- Unity線上技術大會開幕在即,重磅嘉賓名單新鮮出爐Unity