Different ways to validate JSON string
Check if string is valid JSON
In the below program isJSON function is used to validate given string contains valid JSON or not.
Example
package main
import (
"encoding/json"
"fmt"
)
var Object = `{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}`
var Array = `[{"key": "value1"}, {"key": "value2"}]`
func isJSON(s string) bool {
var js interface{}
return json.Unmarshal([]byte(s), &js) == nil
}
func main() {
val1 := isJSON(Object)
fmt.Println(val1)
val2 := isJSON(Array)
fmt.Println(val2)
}
Output
true
true
JSON validate using Standard Library function
Example
package main
import (
"fmt"
"encoding/json"
)
func main() {
var tests = []string{
`"Platypus"`,
`Platypus`,
`{"id":"1"}`,
`{"id":"1}`,
}
for _, t := range tests {
fmt.Printf("Is valid: (%s) = %v\n", t, json.Valid([]byte(t)))
}
}
Output
Is valid: ("Platypus") = true
Is valid: (Platypus) = false
Is valid: ({"id":"1"}) = true
Is valid: ({"id":"1}) = false
Most Helpful This Week
Simple example of Map initialization in Go
How to create Empty and Nil Slice?
Subtract N number of Year, Month, Day, Hour, Minute, Second, Millisecond, Microsecond and Nanosecond to current date-time.
How to blur an image in Golang?
How to check if a string contains a numbers in Golang?
Example to handle GET and POST request in Golang
Most Helpful This Week
How to rotate an image?How to create Empty and Nil Slice?Dynamic XML parser without Struct in GoRegex to extract image name from HTML in GolangHow to delete or remove element from a Map?Creating a Function in GolangRegular expression to validate common Credit Card NumbersRegular Expression to get a string between parentheses in GolangExample to use Weekday and YearDay functionExample: Fields and FieldsFunc from BYTES Package