@@ -11,10 +11,10 @@ import (
11
11
// New returns a new instance of JSONQ
12
12
func New (options ... OptionFunc ) * JSONQ {
13
13
jq := & JSONQ {
14
- queryMap : loadDefaultQueryMap (),
14
+ queryMap : defaultQueries (),
15
15
option : option {
16
16
decoder : & DefaultDecoder {},
17
- separator : defaultSeperator ,
17
+ separator : defaultSeparator ,
18
18
},
19
19
}
20
20
for _ , option := range options {
@@ -28,7 +28,7 @@ func New(options ...OptionFunc) *JSONQ {
28
28
// empty represents an empty result
29
29
var empty interface {}
30
30
31
- const defaultSeperator = "."
31
+ const defaultSeparator = "."
32
32
33
33
// query describes a query
34
34
type query struct {
@@ -60,8 +60,8 @@ func (j *JSONQ) String() string {
60
60
61
61
// decode decodes the raw message to Go data structure
62
62
func (j * JSONQ ) decode () * JSONQ {
63
- if err := j .option .decoder .
64
- Decode ( j . raw , & j . rootJSONContent ); err != nil {
63
+ err := j .option .decoder .Decode ( j . raw , & j . rootJSONContent )
64
+ if err != nil {
65
65
return j .addError (err )
66
66
}
67
67
j .jsonContent = j .rootJSONContent
@@ -85,10 +85,10 @@ func (j *JSONQ) File(filename string) *JSONQ {
85
85
return j .decode () // handle error
86
86
}
87
87
88
- // JSONString reads the json content from valid json string // Deprecated: this method will remove in next major release
88
+ // JSONString reads the json content from valid json string
89
+ // Deprecated: this method will remove in next major release
89
90
func (j * JSONQ ) JSONString (json string ) * JSONQ {
90
- j .raw = []byte (json )
91
- return j .decode () // handle error
91
+ return j .FromString (json )
92
92
}
93
93
94
94
// FromString reads the content from valid json/xml/csv/yml string
@@ -206,7 +206,7 @@ func (j *JSONQ) Where(key, cond string, val interface{}) *JSONQ {
206
206
value : val ,
207
207
}
208
208
if j .queryIndex == 0 && len (j .queries ) == 0 {
209
- qq := []query {}
209
+ var qq []query
210
210
qq = append (qq , q )
211
211
j .queries = append (j .queries , qq )
212
212
} else {
@@ -218,40 +218,40 @@ func (j *JSONQ) Where(key, cond string, val interface{}) *JSONQ {
218
218
219
219
// WhereEqual is an alias of Where("key", "=", val)
220
220
func (j * JSONQ ) WhereEqual (key string , val interface {}) * JSONQ {
221
- return j .Where (key , signEq , val )
221
+ return j .Where (key , operatorEq , val )
222
222
}
223
223
224
224
// WhereNotEqual is an alias of Where("key", "!=", val)
225
225
func (j * JSONQ ) WhereNotEqual (key string , val interface {}) * JSONQ {
226
- return j .Where (key , signNotEq , val )
226
+ return j .Where (key , operatorNotEq , val )
227
227
}
228
228
229
229
// WhereNil is an alias of Where("key", "=", nil)
230
230
func (j * JSONQ ) WhereNil (key string ) * JSONQ {
231
- return j .Where (key , signEq , nil )
231
+ return j .Where (key , operatorEq , nil )
232
232
}
233
233
234
234
// WhereNotNil is an alias of Where("key", "!=", nil)
235
235
func (j * JSONQ ) WhereNotNil (key string ) * JSONQ {
236
- return j .Where (key , signNotEq , nil )
236
+ return j .Where (key , operatorNotEq , nil )
237
237
}
238
238
239
239
// WhereIn is an alias for where("key", "in", []string{"a", "b"})
240
240
func (j * JSONQ ) WhereIn (key string , val interface {}) * JSONQ {
241
- j .Where (key , signIn , val )
241
+ j .Where (key , operatorIn , val )
242
242
return j
243
243
}
244
244
245
245
// WhereNotIn is an alias for where("key", "notIn", []string{"a", "b"})
246
246
func (j * JSONQ ) WhereNotIn (key string , val interface {}) * JSONQ {
247
- j .Where (key , signNotIn , val )
247
+ j .Where (key , operatorNotIn , val )
248
248
return j
249
249
}
250
250
251
251
// OrWhere builds an OrWhere clause, basically it's a group of AND clauses
252
252
func (j * JSONQ ) OrWhere (key , cond string , val interface {}) * JSONQ {
253
253
j .queryIndex ++
254
- qq := []query {}
254
+ var qq []query
255
255
qq = append (qq , query {
256
256
key : key ,
257
257
operator : cond ,
@@ -263,33 +263,33 @@ func (j *JSONQ) OrWhere(key, cond string, val interface{}) *JSONQ {
263
263
264
264
// WhereStartsWith satisfies Where clause which starts with provided value(string)
265
265
func (j * JSONQ ) WhereStartsWith (key string , val interface {}) * JSONQ {
266
- return j .Where (key , signStartsWith , val )
266
+ return j .Where (key , operatorStartsWith , val )
267
267
}
268
268
269
269
// WhereEndsWith satisfies Where clause which ends with provided value(string)
270
270
func (j * JSONQ ) WhereEndsWith (key string , val interface {}) * JSONQ {
271
- return j .Where (key , signEndsWith , val )
271
+ return j .Where (key , operatorEndsWith , val )
272
272
}
273
273
274
274
// WhereContains satisfies Where clause which contains provided value(string)
275
275
func (j * JSONQ ) WhereContains (key string , val interface {}) * JSONQ {
276
- return j .Where (key , signContains , val )
276
+ return j .Where (key , operatorContains , val )
277
277
}
278
278
279
279
// WhereStrictContains satisfies Where clause which contains provided value(string).
280
280
// This is case sensitive
281
281
func (j * JSONQ ) WhereStrictContains (key string , val interface {}) * JSONQ {
282
- return j .Where (key , signStrictContains , val )
282
+ return j .Where (key , operatorStrictContains , val )
283
283
}
284
284
285
285
// WhereLenEqual is an alias of Where("key", "leneq", val)
286
286
func (j * JSONQ ) WhereLenEqual (key string , val interface {}) * JSONQ {
287
- return j .Where (key , signLenEq , val )
287
+ return j .Where (key , operatorLenEq , val )
288
288
}
289
289
290
290
// WhereLenNotEqual is an alias of Where("key", "lenneq", val)
291
291
func (j * JSONQ ) WhereLenNotEqual (key string , val interface {}) * JSONQ {
292
- return j .Where (key , signLenNotEq , val )
292
+ return j .Where (key , operatorLenNotEq , val )
293
293
}
294
294
295
295
// findInArray traverses through a list and returns the value list.
@@ -428,7 +428,7 @@ func (j *JSONQ) Distinct(property string) *JSONQ {
428
428
// distinct builds distinct value using provided attribute/column/property
429
429
func (j * JSONQ ) distinct () * JSONQ {
430
430
m := map [string ]bool {}
431
- dt := []interface {}{}
431
+ var dt = make ( []interface {}, 0 )
432
432
if aa , ok := j .jsonContent .([]interface {}); ok {
433
433
for _ , a := range aa {
434
434
if vm , ok := a .(map [string ]interface {}); ok {
@@ -478,8 +478,7 @@ func (j *JSONQ) sortBy(property string, asc bool) *JSONQ {
478
478
479
479
// only return selected properties in result
480
480
func (j * JSONQ ) only (properties ... string ) interface {} {
481
- result := []interface {}{}
482
-
481
+ var result = make ([]interface {}, 0 )
483
482
if aa , ok := j .jsonContent .([]interface {}); ok {
484
483
for _ , am := range aa {
485
484
tmap := map [string ]interface {}{}
@@ -514,7 +513,7 @@ func (j *JSONQ) OnlyR(properties ...string) (*Result, error) {
514
513
return NewResult (v ), nil
515
514
}
516
515
517
- // Pluck build an array of vlaues form a property of a list of objects
516
+ // Pluck build an array of values form a property of a list of objects
518
517
func (j * JSONQ ) Pluck (property string ) interface {} {
519
518
j .prepare ()
520
519
if j .distinctProperty != "" {
@@ -523,7 +522,7 @@ func (j *JSONQ) Pluck(property string) interface{} {
523
522
if j .limitRecords != 0 {
524
523
j .limit ()
525
524
}
526
- result := []interface {}{}
525
+ var result = make ( []interface {}, 0 )
527
526
if aa , ok := j .jsonContent .([]interface {}); ok {
528
527
for _ , am := range aa {
529
528
if mv , ok := am .(map [string ]interface {}); ok {
@@ -536,7 +535,7 @@ func (j *JSONQ) Pluck(property string) interface{} {
536
535
return result
537
536
}
538
537
539
- // PluckR build an array of vlaues form a property of a list of objects and return as Result instance
538
+ // PluckR build an array of values form a property of a list of objects and return as Result instance
540
539
func (j * JSONQ ) PluckR (property string ) (* Result , error ) {
541
540
v := j .Pluck (property )
542
541
if err := j .Error (); err != nil {
@@ -678,7 +677,7 @@ func (j *JSONQ) FindR(path string) (*Result, error) {
678
677
// This could be a length of list/array/map
679
678
func (j * JSONQ ) Count () int {
680
679
j .prepare ()
681
- lnth := 0
680
+ var lnth int
682
681
// list of items
683
682
if list , ok := j .jsonContent .([]interface {}); ok {
684
683
lnth = len (list )
@@ -716,7 +715,7 @@ func (j *JSONQ) Writer(w io.Writer) {
716
715
}
717
716
}
718
717
719
- // More provides the functionalities to query over the resultant data. See https://github.com/thedevsaddam/gojsonq/wiki/Queries#More
718
+ // More provides the functionality to query over the resultant data. See https://github.com/thedevsaddam/gojsonq/wiki/Queries#More
720
719
func (j * JSONQ ) More () * JSONQ {
721
720
j .raw = nil
722
721
j .rootJSONContent = j .Get ()
@@ -731,7 +730,7 @@ func (j *JSONQ) More() *JSONQ {
731
730
732
731
// getFloatValFromArray returns a list of float64 values from array/map for aggregation
733
732
func (j * JSONQ ) getFloatValFromArray (arr []interface {}, property ... string ) []float64 {
734
- ff := []float64 {}
733
+ var ff []float64
735
734
for _ , a := range arr {
736
735
if av , ok := a .(float64 ); ok {
737
736
if len (property ) > 0 {
@@ -772,7 +771,7 @@ func (j *JSONQ) getAggregationValues(property ...string) []float64 {
772
771
j .limit ()
773
772
}
774
773
775
- ff := []float64 {}
774
+ var ff []float64
776
775
if arr , ok := j .jsonContent .([]interface {}); ok {
777
776
ff = j .getFloatValFromArray (arr , property ... )
778
777
}
0 commit comments