10.08.2026

BusEngine.dll

BusEngine.Tools.Json (Class)

Класс отвечающий за конвертацию object содержащие различные типы данных в строку формата JSON и обратно - сериализация и десериализация.
Сериализация и десериализация необходима, чтобы не париться с многочисленными вариантами типов данных, а приводить их к одному стилю, где уже с лёгкостью сможете обрабатывать и настраивать условия их обработки.
В основе BusEngine.Tools.Json лежит библиотека собственной разработки (с v0.4.2.0), что в 30-40 раз быстрее Json.NET от NewTonSoft и стандартных преобразователей от Microsoft. Данные по умолчанию конвертируются в "System.Collections.Generic.Dictionary" с добавлением обработки типов "System.Type". Рекомендуется использовать "BusEngine.Setting" вместо любых словарей в угоду удобства для скорости разработки приложений.

Методы

(string)BusEngine.Tools.Json.Encode(object|BusEngine.Setting|IDictionary|IList|System.Type)

Метод (статический) уровня класса принимает object|BusEngine.Setting|IDictionary|IList|System.Type данные для конвертации в строку JSON формат.

(object)BusEngine.Tools.Json.Decode(string, bool)

Метод (статический) уровня класса принимает string строку JSON для конвертации в Dictionary() формат, если нужно получить object формат, то вторым параметром установите true.

(object)BusEngine.Tools.Json.Decode<T>(string)

Метод (статический) уровня класса принимает тип данных словарей (BusEngine.Setting|System.Collections.IDictionary) и string строку JSON для конвертации в указанный тип данных словаря (BusEngine.Setting|System.Collections.IDictionary)() формат.

Наверх

Подклассы

Подклассов нет

Константы

Констант нет

Поля

Полей нет

Свойства

Свойств нет

События

Событий нет

Пример файла Program.cs

В коде отражено конвертирование объекта в json и обратно при старте своего плагина с названием "MyPlugin".

  1. /** API BusEngine.Game - пользовательский код */
  2. namespace BusEngine.Game {
  3.     /** API BusEngine.Plugin */
  4.     public class MyPlugin : BusEngine.Plugin {
  5.         internal class ProjectSettingDefault {
  6.             public static object content;
  7.             public ProjectSettingDefault() {
  8.                 content = new {
  9.                     assets = new string[] {"GameData"},
  10.                     code = new string[] {"Code"},
  11.                     libs = new {
  12.                         name = "BusEngine",
  13.                         shared = new {
  14.                             Any = "",
  15.                             Android = "",
  16.                             Win = "",
  17.                             Win_x64 = "",
  18.                             Win_x86 = "",
  19.                         },
  20.                     },
  21.                 };
  22.             }
  23.         }
  24.         // при запуске BusEngine до создания формы
  25.         public override void Initialize() {
  26.             BusEngine.Log.Info(BusEngine.Tools.Json.Encode(new ProjectSettingDefault()));
  27.             BusEngine.Log.Info(BusEngine.Tools.Json.Decode(BusEngine.Tools.Json.Encode(new ProjectSettingDefault())));
  28.         }
  29.     }
  30.     /** API BusEngine.Plugin */
  31. }
  32. /** API BusEngine.Game - пользовательский код */
Наверх