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
How can I convert a string variable into Boolean, Integer or Float type in Golang?
How to read input from console line?
User Defined Function Types in Golang
Example of Fscan, Fscanf, and Fscanln from FMT Package
Split a string at uppercase letters using regular expression in Golang
Find element in a slice and move it to first position?
Find capacity of Channel, Pointer and Slice
How to use function from another file golang?
Create and Print Multi Dimensional Slice in Golang
How to use for and foreach loop?
Most Helpful This Week
Regular expression to validate email addressRegular expression to extract all Non-Alphanumeric Characters from a StringHow to create Map using the make function in Go?How to convert Boolean Type to String in Go?Golang String ConcatenationHow to reads and decodes JSON values from an input stream?Golang download image from given URLHow to count number of repeating words in a given String?How to print string with double quote in Go?How to import structs from another package in Go?