代码拉取完成,页面将自动刷新
一个万能值复合变量,其目的是将Json,Msgpack这类数据协议格式综合,提供一个复合变量,在变量内部使用Go的常规简单数据类型进行操作管理(将各类数据类型直接序列化到本
本变量内部存储,不采用反射加大性能,内部采用KV结构模型。)
整体数据结构如下:
整体有效常用对象主要有3个,DxRecord,DxArray,DxValue
DxRecord对象
路径分隔采用对象的PathSplitChar来设置分隔符,比如,JSon格式如下
{"BoolValue": true ,"object":{"objBool": false }}
设置PathSplitChar='.'(PathSplitChar默认值是.) ,那么可以使用object.objBool来获取objBool的值,如下
rc := NewRecord()
rc.JsonParserFromByte([]byte(`{"BoolValue": true ,"object":{"objBool": false }}`),false)
fmt.Println("BoolValue=",rc.AsBool("BoolValue",false))
fmt.Println("object.objBool=",rc.AsBoolByPath("object.objBool",true))
使用ForcePath来创建路径并赋值,本函数在路径存在的时候,直接赋值,如果不存在那么会创建路径然后赋值比如:
rc := NewRecord()
rc.SetBool("BoolValue",true)
rc.ForcePath("object.objBool",false)
fmt.Println(rc.ToString()
使用本功能则可以获得以上的Json格式字符串
使用LoadJsonFile加载Json文件如下
rec := NewRecord()
rec.LoadJsonFile("DataProxy.config.json",true) //参数2指定是否自动解析转义符
使用SaveJsonFile保存内容到Json格式文件
rec := NewRecord()
rec.SetInt("Age",12)
rec.SetString("Name","suiyunonghen")
rec.SetValue("Home",map[string]interface{}{
"Addres": "湖北武汉",
"code":"430000",
"Peoples":4,
})
rec.SaveJsonFile("d:\\testJson.json",true)
DxArray对象
用法如下:
arr := NewArray()
_,err := arr.JsonParserFromByte([]byte(`[ 32 , "2342" ,[ 2 , true , false ,{ "Name" : "DxSoft" , "Age" : 32 } ] ]`),false)
if err == nil {
fmt.Println(arr.ToString())
}else{
fmt.Println("Paser Error")
}
DxValue对象
var v DxValue
v.LoadJsonFile("DataProxy.config.json",true)
fmt.Println(v.AsString())
if rec,_ := v.AsRecord();rec != nil{
if arr := rec.AsArray("list");arr!=nil{
arr.SaveJsonFile("d:\\1.json",true)
fmt.Println("SaveJsonOK")
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型