Универсальная переменная составного типа, цель которой — объединение форматов данных, таких как JSON и MessagePack, и предоставление составной переменной, внутри которой используются стандартные простые типы данных Go для управления (прямое сериализация различных типов данных в эту переменную, без использования рефлексии для повышения производительности, внутренняя структура на основе ключ-значение).
Общая структура данных представлена ниже:
Основные эффективные объекты составляют три типа: DxRecord, DxArray, DxValue.
Разделение путей осуществляется с использованием 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 для создания пути и присваивания значений, где этот метод присваивает значение, если путь существует, и создает путь, если он отсутствует, как показано ниже:
```go
rc := NewRecord()
rc.SetBool("BoolValue", true)
rc.ForcePath("object.objBool", false)
fmt.Println(rc.ToString())
Использование этой функции позволяет получить JSON-строку в указанном формате### Загрузка и сохранение JSON-файлов```go rec := NewRecord() rec.LoadJsonFile("DataProxy.config.json", true) // Второй параметр указывает, нужно ли автоматически разрешать escape-последовательности
```go
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)
SetValue(idx, v)
, SetInt
, SetInt32
, SetArray
и другие.JsonParserFromByte
используется для декодирования JSON-строки, второй параметр указывает, нужно ли автоматически разрешать escape-последовательности.AsInt(idx)
, AsBool(idx)
, AsString(idx)
для получения значений.LoadJsonFile
для загрузки JSON-файлов.SaveJsonFile
для сохранения содержимого в JSON-файлы.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("Ошибка парсинга")
}
DxRecord
и DxArray
.LoadJsonFile
для загрузки JSON-файлов (см. Record
).SaveJsonFile
для сохранения содержимого в JSON-файлы (см. Record
).JsonParserFromByte
используется для декодирования JSON-строки; второй параметр указывает, нужно ли автоматически разрешать escape-последовательности и автоматически распознавать формат JSON.```go
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("Сохранение JSON завершено")
}
}Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )