snapshot of https://github.com/centrifugal/centrifugo.git (master, 2026-09-16; blobs > 131072B omitted)
This commit is contained in:
30
internal/tools/json.go
Normal file
30
internal/tools/json.go
Normal file
@@ -0,0 +1,30 @@
|
||||
package tools
|
||||
|
||||
import "encoding/json"
|
||||
|
||||
// IsValidJSON checks if the given byte slice is valid JSON.
|
||||
func IsValidJSON(data []byte) bool {
|
||||
return json.Valid(data)
|
||||
}
|
||||
|
||||
// IsValidJSONObject checks if the given byte slice is valid JSON and specifically a JSON object.
|
||||
func IsValidJSONObject(data []byte) bool {
|
||||
if !IsValidJSON(data) {
|
||||
return false
|
||||
}
|
||||
// Find first non-whitespace character
|
||||
start := 0
|
||||
for start < len(data) && isWhitespace(data[start]) {
|
||||
start++
|
||||
}
|
||||
// Find last non-whitespace character
|
||||
end := len(data) - 1
|
||||
for end >= start && isWhitespace(data[end]) {
|
||||
end--
|
||||
}
|
||||
return start <= end && data[start] == '{' && data[end] == '}'
|
||||
}
|
||||
|
||||
func isWhitespace(b byte) bool {
|
||||
return b == ' ' || b == '\t' || b == '\n' || b == '\r'
|
||||
}
|
||||
Reference in New Issue
Block a user