BusEngine.dll
BusEngine.Tools.Json (Class)
Класс отвечающий за конвертацию object содержащие различные типы данных в строку формата JSON и обратно - сериализация и десериализация.
Сериализация и десериализация необходима, чтобы не париться с многочисленными вариантами типов данных, а приводить их к одному стилю, где уже с лёгкостью сможете обрабатывать и настраивать условия их обработки.
В основе BusEngine.Tools.Json лежит библиотека Json.NET от NewTonSoft и данные по умолчанию конвертируются в "System.Collections.Generic.Dictionary" с добавлением обработки типов т.к. у Json.NET некрасивая реализация проверки и есть такая проблема, что библиотека не обрабатывает первый уровень массива (функции библиотеки не работают для первого уровня массива) в результате решено вручную обработать весь массив данных и привести его полностью к "System.Collections.Generic.Dictionary" отказывшись от возможности использования функционала Json.NET. Привлекательность библиотеки Json.NET в том, что Json.NET понимает комментарии в файле JSON, а такая возможность сильно упрощает разработку. Также посетите описание глобальных методов, полей и свойств System.Type от MicroSoft.
Методы
Метод (статический) уровня класса принимает System.Type|object|string|int|Dictionary|List данные для конвертации в строку json формат. |
Метод (статический) уровня класса принимает string строку для конвертации в Dictionary |
Подклассы
Константы
Поля
Свойства
События
Пример файла Program.cs
В коде отражено конвертирование объекта в json и обратно при старте своего плагина с названием "MyPlugin".
- /** API BusEngine.Game - пользовательский код */
- namespace BusEngine.Game {
- /** API BusEngine.Plugin */
- public class MyPlugin : BusEngine.Plugin {
- internal class ProjectSettingDefault {
- public static object content;
- public ProjectSettingDefault() {
- name = "BusEngine",
- Any = "",
- Android = "",
- Win = "",
- Win_x64 = "",
- Win_x86 = "",
- },
- },
- };
- }
- }
- // при запуске BusEngine до создания формы
- public override void Initialize() {
- BusEngine.Log.Info(BusEngine.Tools.Json.Decode(BusEngine.Tools.Json.Encode(new ProjectSettingDefault())));
- }
- }
- /** API BusEngine.Plugin */
- }
- /** API BusEngine.Game - пользовательский код */