New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

json-serializer-lib

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

json-serializer-lib

A library to decrease the size of the JSON before sending it over the network and restoring it when it is received.

latest
npmnpm
Version
1.0.1
Version published
Maintainers
1
Created
Source

Instalation

npm i json-serializer-lib

Basic use

var jsonSerializer = require('json-serializer-lib');



const OBJECT_TO_SERIALIZE =  {
  ///////////////////////////////////////////////////////
  // Predefined default values
  property_predef_val_01: 0,           // Zero.
  property_predef_val_02: '',          // Empty string.
  property_predef_val_03: false,       // False.
  property_predef_val_04: [],          // Empty array.
  property_predef_val_05: {},          // Empty object.
  property_predef_val_06: undefined,   // UNDEFINED.
  property_predef_val_07: null,        // NULL.
  property_predef_val_08: {
    subProperty01: 0                    // Nested Zero.
  },
  property_predef_val_09: {
    subProperty01: ''                   // Nested empty string.
  },
  property_predef_val_10: {
    subProperty01: false                // Nested false.
  },
  property_predef_val_11: {
    subProperty01: []                   // Nested empty array.
  },
  property_predef_val_12: {
    subProperty01: {}                   // Nested empty object.
  },
  property_predef_val_13: {
    subProperty01: undefined            // Nested UNDEFINED.
  },
  property_predef_val_14: {
    subProperty01: null                 // Nested NULL.
  },
  ///////////////////////////////////////////////////////
  // User defined default values
  property_user_def_val_01: -1,        // A number different from 0.
  property_user_def_val_02: '<NONE>',  // A not empty string.
  property_user_def_val_03: true,      // A not false value.
  property_user_def_val_04: [ -100 ],  // A not empty array as default value.
  property_user_def_val_05: {          // A not empty object as default value.
    this_prop_dont_need_to_be_mapped: '<N/A>'
  },
  ///////////////////////////////////////////////////////
  // Values
  property01: Math.PI,
  property02: 'Hello WORLD!!!',
  property03: true,
  property04: [ 1, 2, 3 ],
  property05: {
    subProperty01: 'Happy coding',
    subProperty02: new Date()
  }
};


const SCHEMA = {
  ///////////////////////////////////////////////////////
  // Predefined default values
  't@n_property_predef_val_01': 'ppv01',
  't@s_property_predef_val_02': 'ppv02',
  't@b_property_predef_val_03': 'ppv03',
  't@a_property_predef_val_04': 'ppv04',
  't@o_property_predef_val_05': 'ppv05',
  't@n_property_predef_val_06': 'ppv06',
  't@o_property_predef_val_07': 'ppv07',
  't@o_property_predef_val_08': {
    _propName: 'ppv08',
    _sch: {
      't@n_subProperty01': 'sp01'
    }
  },
  't@o_property_predef_val_09': {
    _propName: 'ppv09',
    _sch: {
      't@s_subProperty01': 'sp01'
    }
  },
  't@o_property_predef_val_10': {
    _propName: 'ppv10',
    _sch: {
      't@b_subProperty01': 'sp01'
    }
  },
  't@o_property_predef_val_11': {
    _propName: 'ppv11',
    _sch: {
      't@a_subProperty01': 'sp01'
    }
  },
  't@o_property_predef_val_12': {
    _propName: 'ppv12',
    _sch: {
      't@o_subProperty01': 'sp01'
    }
  },
  't@o_property_predef_val_13': {
    _propName: 'ppv13',
    _sch: {
      't@n_subProperty01': 'sp01'
    }
  },
  't@o_property_predef_val_14': {
    _propName: 'ppv14',
    _sch: {
      't@o_subProperty01': 'sp01'
    }
  },
  ///////////////////////////////////////////////////////
  // User defined default values
  't@n_property_user_def_val_01':{
    _propName: 'puv01',
    _defVal: -1
  },
  't@s_property_user_def_val_02':{
    _propName: 'puv02',
    _defVal: '<NONE>'
  },
  't@b_property_user_def_val_03':{
    _propName: 'puv03',
    _defVal: true
  },
  't@a_property_user_def_val_04':{
    _propName: 'puv04',
    _defVal: [ -100  ]
  },
  't@o_property_user_def_val_05':{
    _propName: 'puv05',
    _defVal: { // The default value is an entire object.
      this_prop_dont_need_to_be_mapped: '<N/A>'
    }
  },
  ///////////////////////////////////////////////////////
  // Values
  't@n_property01': 'p01',
  't@s_property02': 'p02',
  't@b_property03': 'p03',
  't@a_property04': 'p04',
  't@o_property05': {
    _propName: 'p05',
    _sch: {
      't@s_subProperty01': 'sp01',
      't@d_subProperty02': 'sp02'
    }
  }
};


const serializedJSON = jsonSerializer.Model.serialize(OBJECT_TO_SERIALIZE, SCHEMA).serializedJSON;
const deserializedJSON = jsonSerializer.Model.deserialize(serializedJSON, SCHEMA).deserializedJSON;


console.log("Serialized:\n", serializedJSON);
console.log("Deserialized:\n", deserializedJSON);

Please visit the Project's Wiki, for more details in how to define the schema and how to configure to your needs.

Keywords

json

FAQs

Package last updated on 27 Apr 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts