/
Zamar_Terrier
/
TigorEngineWeb
Обзор
Документация
Войти
/
Zamar_Terrier
/
TigorEngineWeb
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
includes/json_parser.h
70 строк
2 KB
Zamar_Terrier
add json and xml parsers
12 мар 2026, 17:40
12 мар 2026, 17:40
becab97
Код
Авторство
О чём код?
#ifndef JSON_PARSER_H #define JSON_PARSER_H #include <stdio.h> #include <stdlib.h> #include <string.h> // Основные типы данных JSON typedef enum { JSON_NULL, JSON_BOOL, JSON_NUMBER, JSON_STRING, JSON_ARRAY, JSON_OBJECT } json_type_t; // Предварительное объявление структуры struct json_value; // Элемент массива или объекта typedef struct json_element { struct json_value* value; struct json_element* next; } json_element_t; // Ключ-значение для объектов typedef struct json_pair { char* key; struct json_value* value; struct json_pair* next; } json_pair_t; // Структура значения JSON typedef struct json_value { json_type_t type; union { int boolean; double number; char* string; json_element_t* array; json_pair_t* object; } data; } json_value_t; // Создание значений json_value_t* json_null(); json_value_t* json_boolean(int boolean); json_value_t* json_number(double number); json_value_t* json_string(const char* string); json_value_t* json_array(); json_value_t* json_object(); // Работа с ма��сивами int json_array_add(json_value_t* array, json_value_t* value); json_value_t* json_array_get(json_value_t* array, int index); int json_array_size(json_value_t* array); // Работа с объектами int json_object_set(json_value_t* object, const char* key, json_value_t* value); json_value_t* json_object_get(json_value_t* object, const char* key); // Парсинг и сериализация json_value_t* json_parse(const char* json_str); char* json_stringify(const json_value_t* value); // Освобождение памяти void json_free(json_value_t* value); #endif // JSON_PARSER_H