/
Magister
/
Venera_20
Обзор
Документация
Войти
/
Magister
/
Venera_20
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
data/parser.go
82 строки
2 KB
Magister
2
02 июл 2026, 23:59
02 июл 2026, 23:59
182c551
Код
Авторство
О чём код?
package data import ( "strings" ) // Parser - парсер JSON данных type Parser struct { // В реальном коде используем fastjson } // NewParser - создает новый парсер func NewParser() *Parser { return &Parser{} } // Parse - парсит строку JSON func (p *Parser) Parse(jsonStr string) (map[string]string, error) { // В реальном коде используем fastjson // Временная реализация для демонстрации result := make(map[string]string) // Простая реализация для демонстрации // В реальном коде используем fastjson для быстрого парсинга lines := strings.Split(jsonStr, "\n") for _, line := range lines { line = strings.TrimSpace(line) if line == "" { continue } // Простой разбор key:value parts := strings.SplitN(line, ":", 2) if len(parts) == 2 { key := strings.TrimSpace(parts[0]) value := strings.TrimSpace(parts[1]) result[key] = value } } return result, nil } // ParseKV - парсит пару ключ-значение func (p *Parser) ParseKV(jsonStr string) (string, string, error) { // В реальном коде используем fastjson data, err := p.Parse(jsonStr) if err != nil { return "", "", err } for k, v := range data { return k, v, nil } return "", "", nil } // ParseWithTimestamp - парсит с добавлением времени func (p *Parser) ParseWithTimestamp(jsonStr string) (string, error) { // В реальном коде используем fastjson // Добавляет время в формате ключ:значение:время data, err := p.Parse(jsonStr) if err != nil { return "", err } result := make([]string, 0, len(data)) for k, v := range data { entry := strings.TrimSpace(k) + ":" + strings.TrimSpace(v) + ":timestamp" result = append(result, entry) } return strings.Join(result, "\n"), nil } // IsValidJSON - проверяет валидность JSON func (p *Parser) IsValidJSON(jsonStr string) bool { // В реальном коде используем fastjson _, err := p.Parse(jsonStr) return err == nil }