Add JsonPrintError

This commit is contained in:
George Suntres
2026-04-14 11:29:05 -04:00
parent 2fccb814c3
commit c0bee95cf6
4 changed files with 105 additions and 1 deletions

40
json.go Normal file
View File

@@ -0,0 +1,40 @@
package commons
import (
"log"
"reflect"
"encoding/json"
)
func JsonPrintError(err error, content []byte) {
if syntaxErr, ok := err.(*json.SyntaxError); ok {
totalLen := int64(len(content))
min := MathMin(int64(50), syntaxErr.Offset)
from := MathMax(syntaxErr.Offset - min, 0)
to := MathMin(syntaxErr.Offset + min, totalLen)
sliceBuf := content[from:to]
log.Printf("Failed to unmarshal %#v \n %s", syntaxErr, string(sliceBuf))
} else {
log.Printf("%v", err)
}
}
// JsonEqual check if two json string representations are equal.
func JsonEqual(a, b string) bool {
var o1 any
var o2 any
if err := json.Unmarshal([]byte(a), &o1); err != nil {
return false
}
if err := json.Unmarshal([]byte(b), &o2); err != nil {
return false
}
return reflect.DeepEqual(o1, o2)
}