0.0.1-beta8 • Published 6 years ago

json-path-value v0.0.1-beta8

Weekly downloads
7
License
ISC
Repository
github
Last release
6 years ago

JSON PATH VALUE

Description

It is a library that makes easier working with Json and JsonPath. It provides 3 main functionalities: 1) Json to JsonPath 2) JsonPath to Json 3) Comparing 2 Json's

Functionalities

Constructor

const library = new JsonPath();

JsonPathPair

This is a class that represents a JsonPath format.

Constructor
public  constructor(private  path:  string, private  value:  any, private  type:  string, private  diff:  string);

The first param is the path where a value, second param, of a type, third param, is placed. The fourth param is only used in the "Compare 2 Json's" functionality.

Example:

/*{
	"a": "a",
	"b" : {
		"c" : 1
	}	
}*/

let JsonPathPairs: JsonPathPair[] = [];
JsonPathPairs.push(new JsonPathPair("a", "a", "string", ''));
JsonPathPairs.push(new JsonPathPair("b.c", 1, "number", ''));
PATHVALUETYPE
a"a"string
b.c1number

Marshall

This method allows us to transform a Json object "obj" into a JsonPath.

public  marshall(obj:  any, path:  string, JsonPathPairs:  JsonPathPair[]):  JsonPathPair[]

In the first param you must insert your json's name. The second and the third one will always has the same initial value, "" and [] respectively.

Example:

let json = {
	"a": "a",
	"b": {
		"c": {
			"d": "d",
			"e": "e"
		},
		"f": "f"
	}
}
const marshalled = library.marshall(json, "", []);
PATHVALUETYPE
a"a"string
b.c.d"d"string
b.c.e"e"string
b.f"f"string

UnMarshall

This method allows us to transform a JsonPath "JsonPathPairs" into a Json object.

public  unMarshall(JsonPathPairs:  JsonPathPair[]):  any

The first param must be the JsonPath in a JsonPathPair[] format. Example:

const marshalled --> | PATH | VALUE | TYPE | |----------|:-------------:|------:| | a | "a"| string | | b.c.d | "d" | string | | b.c.e | "e" | string | | b.f | "f" | string |

const unmarshalled = library.unMarshall(marshalled, "", []);

/*unmarshalled = {
	"a": "a",
	"b": {
		"c": {
			"d": "d",
			"e": "e"
		},
		"f": "f"
	}
}*/

Compare 2 Json's

This method allows us to compare 2 Json's and the method will return a JsonPathPair[], one row for each difference between the 2 Json (Addition, Modification or Deletion) and the current value.

public  compareJsonPath(before:  any, after:  any):  JsonPathPair[]

Example:

let before = {
	"a": "a",
	"b": {
		"c": {
			"d": "d",
			"e": "e"
		},
		"f": "f"
	}
}
let after = {
	"a": true,
	"b": {
		"c": {
			"d": "d",
			"g" : "g"
		},
		"f": 2
	}
}

const compared = library.compareJsonPath(before, after);

const compared -->

PATHVALUETYPEDIFF
atruebooleanModified
b.c.e"e"stringDeleted
b.c.g"g"stringAdded
b.f2numberModified
0.0.1-beta8

6 years ago

0.0.1-beta7

6 years ago

0.0.1-beta6

6 years ago

0.0.1-beta5

6 years ago

0.0.1-beta4

6 years ago

0.0.1-beta3

6 years ago

0.0.1-beta2

6 years ago

0.0.1-beta1

6 years ago

0.0.1-beta0

6 years ago