1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/dxsoft-DxValue

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

DxValue

Универсальная переменная составного типа, цель которой — объединение форматов данных, таких как JSON и MessagePack, и предоставление составной переменной, внутри которой используются стандартные простые типы данных Go для управления (прямое сериализация различных типов данных в эту переменную, без использования рефлексии для повышения производительности, внутренняя структура на основе ключ-значение).

Общая структура данных представлена ниже: imageОсновные эффективные объекты составляют три типа: DxRecord, DxArray, DxValue.

  1. Объект DxRecord
    • Объект набора записей
    • Поддерживает кодирование и декодирование формата JSON (Object-модель) и формата MessagePack (Map-модель), создавая соответствующие объекты записей
    • Значения записей могут быть вложенными
    • Может содержать любые типы данных, поддерживаемые JSON и MessagePack, с использованием методов SetValue(K, v), SetInt, SetInt32, SetArray и т. д. для присваивания значений
    • Хранение на основе ключ-значение, с использованием ключа для поиска соответствующего значения, с функциями для получения значений, такими как AsInt(Key), AsBool(key), AsString(Key)
    • Поддерживает поиск и создание путей, например, AsStringByPath, AsRecordByPath и т. д.
    • Использует ForcePath для создания пути и присваивания значений
    • Использует JsonParserFromByte для декодирования JSON-строки, где второй параметр используется для настройки автоматического преобразования и декодирования специальных символов

    Разделение путей осуществляется с использованием 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)

DxArray объект

  • Массив объекта
  • Поддерживает кодирование и декодирование массивов объектов в формате JSON.
  • Поддерживает кодирование и декодирование массивов объектов в формате MsgPack.
  • Значения массива могут быть произвольно вложенными.
  • Может содержать произвольные типы данных, поддерживаемые форматами JSON и MsgPack, используя методы 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("Ошибка парсинга")
}

DxValue объект- Универсальный объект значения

  • Поддерживает кодирование и декодирование произвольных объектов в форматах JSON и MsgPack.
  • Используется в сочетании с объектами 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 )

Вы можете оставить комментарий после Вход в систему

Введение

Объект с универсальным значением, который можно преобразовать из Json и MsgPack. Развернуть Свернуть
Go
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/dxsoft-DxValue.git
git@api.gitlife.ru:oschina-mirror/dxsoft-DxValue.git
oschina-mirror
dxsoft-DxValue
dxsoft-DxValue
master