json-path-value
TypeScript icon, indicating that this package has built-in type declarations

0.0.1-beta8 • Public • Published

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", ''));
PATH VALUE TYPE
a "a" string
b.c 1 number

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, "", []);
PATH VALUE TYPE
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 -->

PATH VALUE TYPE DIFF
a true boolean Modified
b.c.e "e" string Deleted
b.c.g "g" string Added
b.f 2 number Modified

Readme

Keywords

Package Sidebar

Install

npm i json-path-value

Weekly Downloads

0

Version

0.0.1-beta8

License

ISC

Unpacked Size

146 kB

Total Files

18

Last publish

Collaborators

  • server.worldline