-
Notifications
You must be signed in to change notification settings - Fork 142
Closed
Labels
Description
Option for user to provide custom JSON Decoder , like below:
package main
import (
"fmt"
"github.com/davecgh/go-spew/spew"
jsoniter "github.com/json-iterator/go"
"github.com/pquerna/ffjson/ffjson"
"github.com/thedevsaddam/gojsonq"
)
func main() {
jq := gojsonq.New(gojsonq.SetDecoder(&iteratorDecoder{})).
File("./data.json").
From("vendor.items").
Where("id", "=", 1).OrWhere("id", "=", 3)
spew.Dump("Result: ", jq.Only("name", "id"), jq.Error())
}
type iteratorDecoder struct {
}
func (i *iteratorDecoder) Decode(data []byte, v interface{}) error {
var json = jsoniter.ConfigCompatibleWithStandardLibrary
return json.Unmarshal(data, &v)
}
type ffDecoder struct {
}
func (f *ffDecoder) Decode(data []byte, v interface{}) error {
return ffjson.Unmarshal(data, &v)
}