Skip to content

Commit

Permalink
json
Browse files Browse the repository at this point in the history
  • Loading branch information
KevinZonda committed Jun 5, 2024
1 parent e691ceb commit 1b1df8e
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 33 deletions.
60 changes: 60 additions & 0 deletions pkg/jsonx/BytesObj.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package jsonx

import "encoding/json"

func BytesToObj[T any](s []byte) T {
var v T
err := json.Unmarshal(s, &v)
if err != nil {
panic(err)
}
return v
}

func BytesToObjE[T any](s []byte) (T, error) {
var v T
err := json.Unmarshal(s, &v)
return v, err
}

func BytesToObjPtr[T any](s []byte) *T {
var v T
err := json.Unmarshal(s, &v)
if err != nil || v == nil {

Check failure on line 23 in pkg/jsonx/BytesObj.go

View workflow job for this annotation

GitHub Actions / build

invalid operation: v == nil (mismatched types T and untyped nil)
return nil
}
return &v
}

func BytesToObjPtrE[T any](s []byte) (*T, error) {
var v T
err := json.Unmarshal(s, &v)
if err != nil || v == nil {

Check failure on line 32 in pkg/jsonx/BytesObj.go

View workflow job for this annotation

GitHub Actions / build

invalid operation: v == nil (mismatched types T and untyped nil)
return nil, err
}
return &v, nil
}

func BytesToMap(s []byte) map[string]any {
var v map[string]any
err := json.Unmarshal(s, &v)
if err != nil {
panic(err)
}
return v
}

func BytesToMapE(s []byte) (map[string]any, error) {
var v map[string]any
err := json.Unmarshal(s, &v)
return v, err
}

func BytesToArr(s []byte) []any {
var v []any
err := json.Unmarshal(s, &v)
if err != nil {
panic(err)
}
return v
}
29 changes: 29 additions & 0 deletions pkg/jsonx/obj.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package jsonx

func ToObj[T any](s string) T {
return BytesToObj[T]([]byte(s))
}

func ToObjE[T any](s string) (T, error) {
return BytesToObjE[T]([]byte(s))
}

func ToObjPtr[T any](s string) *T {
return BytesToObjPtr[T]([]byte(s))
}

func ToObjPtrE[T any](s string) (*T, error) {
return BytesToObjPtrE[T]([]byte(s))
}

func ToMap(s string) map[string]any {
return BytesToMap([]byte(s))
}

func ToMapE(s string) (map[string]any, error) {
return BytesToMapE([]byte(s))
}

func ToArr(s string) []any {
return BytesToArr([]byte(s))
}
33 changes: 0 additions & 33 deletions pkg/jsonx/ser.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,36 +35,3 @@ func ToStringIE(o any) (string, error) {
}
return string(bs), nil
}

func ToObj[T any](s string) T {
var v T
err := json.Unmarshal([]byte(s), &v)
if err != nil {
panic(err)
}
return v
}

func ToObjE[T any](s string) (T, error) {
var v T
err := json.Unmarshal([]byte(s), &v)
return v, err
}

func ToObjPtr[T any](s string) *T {
var v T
err := json.Unmarshal([]byte(s), &v)
if err != nil || v == nil {
return nil
}
return &v
}

func ToObjPtrE[T any](s string) (*T, error) {
var v T
err := json.Unmarshal([]byte(s), &v)
if err != nil || v == nil {
return nil, err
}
return &v, nil
}

0 comments on commit 1b1df8e

Please sign in to comment.