I have an array like this.
[{
"seq" : 2,
"amnt" : 125
},
{
"seq" : 3
"amnt" : 25
},
{
"seq" : 2
"amnt" : 250
}]
I need to fetch objects from this array where seq
is 2.
In Linq we have extensions in which I can put a where condition.
In Go do I need to loop through and get it using for loop
or is there another way?
Please suggest me an optimum way.
Note: The json has many fields, for this example I gave only two.
I'm a new learner of Go.
I dont know about 'optimal' way to do this but here is what you can do for now to move forward:
package main
import (
"encoding/json"
"fmt"
)
func main() {
byt := []byte(`[{"seq": 2,"amnt": 125},{"seq": 3,"amnt": 25},{"seq": 2,"amnt": 250}]`)
var dat []map[string]int
if err := json.Unmarshal(byt, &dat); err != nil {
panic(err)
}
for idx := range dat {
if dat[idx]["seq"] == 2 {
fmt.Println("bingo")
}
}
}
Goodluck.
Edit: in my first answer I assumed that you might have non-numeric values so that's why I used interface{}
type but after @JimB suggestion I changed that to seek only int
type, so if you have to have some string
or any other type in you json payload the unmarshaling will fail.