json-serializer-lib

1.0.1 • Public • Published

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.

Package Sidebar

Install

npm i json-serializer-lib

Weekly Downloads

1

Version

1.0.1

License

MIT

Unpacked Size

296 kB

Total Files

122

Last publish

Collaborators

  • yferras