hotgo/server/internal/library/validate/yaml.go
2025-09-11 13:37:57 +08:00

51 lines
1.2 KiB
Go

// Package validate
// @Link https://github.com/bufanyun/hotgo
// @Copyright Copyright (c) 2025 HotGo CLI
// @Author Ms <133814250@qq.com>
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
package validate
import (
"strings"
"gopkg.in/yaml.v3"
)
// IsValidYAML 验证字符串是否为有效的YAML格式
func IsValidYAML(yamlStr string) bool {
if strings.TrimSpace(yamlStr) == "" {
return true // 空字符串被认为是有效的
}
var temp interface{}
err := yaml.Unmarshal([]byte(yamlStr), &temp)
return err == nil
}
// ValidateYAML 验证YAML格式并返回错误信息
func ValidateYAML(yamlStr string) error {
if strings.TrimSpace(yamlStr) == "" {
return nil // 空字符串被认为是有效的
}
var temp interface{}
err := yaml.Unmarshal([]byte(yamlStr), &temp)
return err
}
// ParseYAML 解析YAML字符串为interface{}
func ParseYAML(yamlStr string) (interface{}, error) {
var result interface{}
err := yaml.Unmarshal([]byte(yamlStr), &result)
return result, err
}
// ToYAML 将interface{}转换为YAML字符串
func ToYAML(data interface{}) (string, error) {
bytes, err := yaml.Marshal(data)
if err != nil {
return "", err
}
return string(bytes), nil
}