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
Various examples of Carbon date-time package in Golang
Golang Get current Date and Time in EST, UTC and MST?
Get Hours, Days, Minutes and Seconds difference between two dates [Future and Past]
How pointer & and * and ** works in Golang?
Higher Order Functions in Golang
How to append text to a file in Golang?
Most Helpful This Week
How to print string with double quote in Go?How to handle HTTP Get response?How to read names of all files and folders in current directory?Various examples of printing and formatting in GolangRuntime package variablesHow to declare empty Map in Go?How pointer & and * and ** works in Golang?How to import structs from another package in Go?Golang Read Write Create and Delete text fileHow to use for and foreach loop?