Skip to content

Cside/jsondiff

Repository files navigation

jsondiff wercker status GoDoc

Reports differences between two JSONs

Example

import (
	"testing"
	"github.com/Cside/jsondiff"
)

a := []byte(`{ "foo":1, "bar":2 }`)
b := []byte(`{ "foo":1, "bar":3 }`)

if diff := jsondiff.Diff(a, b); diff != "" {
	t.Errorf("two jsons are not equal. diff:\n%s", diff)
}

output:

=== RUN   TestMain
--- FAIL: TestMain (0.00s)
        main_test.go:14: two jsons are not equal. diff:
                  {
                -   "bar": 2,
                +   "bar": 3,
                    "foo": 1
                  }
FAIL
exit status 1

Ignore values

You can ignore some values with specifiying diffopts.IgnorePath(paths []string) option.

Target values can be specified with JSON Pointer .

The following test passes.

import (
	"testing"
	"github.com/Cside/jsondiff"
	"github.com/Cside/jsondiff/diffopts"
)

a := []byte(`{ "foo": 1, "createdAt": 1517141881 }`)
b := []byte(`{ "foo": 1, "createdAt": 1528845681 }`)

if diff := jsondiff.Diff(a, b, diffopts.IgnorePaths([]string{"/createdAt"})); diff != "" {
	t.Errorf("two jsons are not equal. diff:\n%s", diff)
}

License

The MIT License.

About

Reports differences between two JSONs.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages