| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package main
- import (
- "os"
- "fmt"
- "strings"
- "reflect"
- "flag"
- "github.com/tidwall/gjson"
- )
- func main(){
-
- var expr string
- var json string
-
- flag.StringVar(&expr, "expr", "", "json extract expr")
- flag.Parse()
-
- if flag.NArg() == 0 {
- fmt.Print("need json content")
- os.Exit(2)
- }else{
- json = strings.Join(flag.Args(), " ")
- }
-
- var value interface{}
-
- if expr != "" {
- value = gjson.Get(json, expr)
- }
-
- switch v := value.(type) {
- case []string :
- for _, object := range v {
- fmt.Println( object )
- }
-
- case gjson.Result :
- for _, object := range v.Array() {
- fmt.Println( object.Raw )
- }
-
- default :
- fmt.Println( reflect.TypeOf(value) )
-
- }
- }
|