• Stars
    star
    7
  • Rank 2,294,772 (Top 46 %)
  • Language
    Go
  • License
    MIT License
  • Created over 7 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

JSONPath with dot notation generator for golang

Build Status Goreport License MIT

jsonpath - Json generation by dot notation

This library is very close to mongodb's dot notation with a bit of extensions.

Supported syntaxes

Standard dot notation

input hash value output json result
{"0.value":"100"} [{"value":"100"}]
{"1.value":"100"} [null, {"value":"100"}]
{"value":"100"} {"value":"100"}
{"value.1":"100"} {"value":[null, "100"]}
{"v.0.k":"100"} {"v":[{"k":100}]}

Extended

input hash value output json result
{"v.num()":"1.0"} {"v":1.0}
{"v.bool()":"true"} {"v":true}

Benchmarks

Run benchmarks

go test -bench=.

Results

v0.0.3

BenchmarkComplexJSONPathArray-8             	  100000	     12480 ns/op
BenchmarkSimpleJSONPathArrayWithNum-8       	  500000	      2654 ns/op
BenchmarkSimpleJSONPathArrayWithBool-8      	 1000000	      2319 ns/op
BenchmarkSimpleJSONPathArrayInsideArray-8   	  500000	      3066 ns/op
BenchmarkSimpleJSONPathArrays-8             	  500000	      2636 ns/op
BenchmarkSimpleJSONPathSimple-8             	 1000000	      1626 ns/op
BenchmarkJSONNative-8                       	 2000000	       959 ns/op

Installation

go get github.com/cthulhu/jsonpath

Usage

in := map[string]string{"0.value": "100.00"}
jsobBytes := jsonpath.Marshal(in)

For more examples check jsonpath_test.go file

LICENSE

See LICENSE file