json.go 932 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package parser
  2. import (
  3. "encoding/json"
  4. "github.com/langgenius/dify-plugin-daemon/internal/types/validators"
  5. )
  6. func UnmarshalJson[T any](text string) (T, error) {
  7. return UnmarshalJsonBytes[T]([]byte(text))
  8. }
  9. func UnmarshalJsonBytes[T any](data []byte) (T, error) {
  10. var result T
  11. err := json.Unmarshal(data, &result)
  12. if err != nil {
  13. return result, err
  14. }
  15. if err := validators.GlobalEntitiesValidator.Struct(&result); err != nil {
  16. return result, err
  17. }
  18. return result, err
  19. }
  20. func MarshalJson[T any](data T) string {
  21. b, _ := json.Marshal(data)
  22. return string(b)
  23. }
  24. func MarshalJsonBytes[T any](data T) []byte {
  25. b, _ := json.Marshal(data)
  26. return b
  27. }
  28. func UnmarshalJsonBytes2Map(data []byte) (map[string]any, error) {
  29. result := map[string]any{}
  30. err := json.Unmarshal(data, &result)
  31. return result, err
  32. }
  33. func UnmarshalJson2Map(json string) (map[string]any, error) {
  34. return UnmarshalJsonBytes2Map([]byte(json))
  35. }