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) }