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
Copy an array by value and reference into another array
Example: How to use ReadAtLeast from IO Package in Golang?
Split a string at uppercase letters using regular expression in Golang
How to check if a string contains a substring in Golang?
How to get current IP form ipify.org ?
How to concatenate two or more slices in Golang?
Most Helpful This Week
How to import structs from another package in Go?Print index and element or data from Array, Slice and MapCreating a Function in GolangEncoding and Decoding using json.Marshal and json.UnmarshalHow pointer & and * and ** works in Golang?Golang Read Write and Process data in CSVReplace first occurrence of string using RegexpRegular expression for matching HH:MM time format in GolangPassing multiple string arguments to a variadic functionExample of Fscan, Fscanf, and Fscanln from FMT Package