thedevsaddam / gojsonq

A simple Go package to Query over JSON/YAML/XML/CSV Data
https://github.com/thedevsaddam/gojsonq/wiki
MIT License
2.18k stars 140 forks source link

Why is it nil? #26

Closed BeanWei closed 5 years ago

BeanWei commented 5 years ago
package main

import (
    "fmt"
    "github.com/thedevsaddam/gojsonq"
)

func main()  {
    const json  = `{"name": "BeanWei", "Age": "23", "foucus": ["python", "golang", "Kotlin"]}`
    dom := gojsonq.New().JSONString(json)
    name := dom.Find("name")
    age := dom.Find("Age")
    ist := dom.Find("foucus.[1]")
    fmt.Println(name, age, ist)
}

>>>output: BeanWei <nil> <nil>

this way aren't supported?

thedevsaddam commented 5 years ago

Use Reset method to start query again. When you use a final Result fetching method like Get/Find/First/Last etc you have to use Reset method to query the same document again.

Solution:

package main

import (
    "fmt"

    "github.com/thedevsaddam/gojsonq"
)

func main() {
    const json = `{"name": "BeanWei", "Age": "23", "foucus": ["python", "golang", "Kotlin"]}`
    dom := gojsonq.New().JSONString(json)
    name := dom.Find("name")
    age := dom.Reset().Find("Age")
    ist := dom.Reset().Find("foucus.[1]")
    fmt.Println(name, age, ist)
}