package main import ( "fmt" "github.com/elgs/jsonql" ) var jsonString = ` [ { "name": "elgs", "gender": "m", "age": 35, "skills": [ "Golang", "Java", "C" ] }, { "name": "enny", "gender": "f", "age": 36, "hobby": null, "skills": [ "IC", "Electric design", "Verification" ] }, { "name": "sam", "gender": "m", "age": 1, "hobby": "dancing", "skills": [ "Eating", "Sleeping", "Crawling" ] } ] ` func main() { parser, err := jsonql.NewStringQuery(jsonString) if err != nil { fmt.Println(err) return } fmt.Println(parser.Query("name='elgsaa'")) //[map[skills:[Golang Java C] name:elgs gender:m age:35]] /* fmt.Println(parser.Query("name='elgs' && gender='f'")) //[] fmt.Println(parser.Query("age<10 || (name='enny' && gender='f')")) // [map[hobby: skills:[IC Electric design Verification] name:enny gender:f age:36] map[name:sam gender:m age:1 hobby:dancing skills:[Eating Sleeping Crawling]]] fmt.Println(parser.Query("age<10")) // [map[gender:m age:1 hobby:dancing skills:[Eating Sleeping Crawling] name:sam]] fmt.Println(parser.Query("1=0")) //[] fmt.Println(parser.Query("age=(2*3)^2")) //[map[skills:[IC Electric design Verification] name:enny gender:f age:36 hobby:]] fmt.Println(parser.Query("name ~= 'e.*'")) // [map[name:elgs gender:m age:35 skills:[Golang Java C]] map[hobby: skills:[IC Electric design Verification] name:enny gender:f age:36]] fmt.Println(parser.Query("name='el'+'gs'")) fmt.Println(parser.Query("age=30+5.0")) fmt.Println(parser.Query("age=40.0-5")) fmt.Println(parser.Query("age=70-5*7")) fmt.Println(parser.Query("age=70.0/2.0")) fmt.Println(parser.Query("age=71%36")) // [map[name:elgs gender:m age:35 skills:[Golang Java C]]] fmt.Println(parser.Query("hobby is defined")) // [map[name:enny gender:f age:36 hobby: skills:[IC Electric design Verification]] map[name:sam gender:m age:1 hobby:dancing skills:[Eating Sleeping Crawling]]] fmt.Println(parser.Query("hobby isnot defined")) // [map[name:sam gender:m age:1 skills:[Eating Sleeping Crawling]]] fmt.Println(parser.Query("hobby is null")) // [map[hobby: skills:[IC Electric design Verification] name:enny gender:f age:36]] fmt.Println(parser.Query("hobby isnot null")) // [map[name:sam gender:m age:1 hobby:dancing skills:[Eating Sleeping Crawling]]] */ }