Skip to content

olaferlandsen/Typescript-Json-Object-Mapper

 
 

Repository files navigation

(TypeScript) Json-Object-Mapper

Donate

This a simple package to mapping a json object.

Getting Started

Install

npm install typescript-json-object-mapper
yarn add typescript-json-object-mapper

Configure

To work with decorators, you need first enable emitDecoratorMetadata y experimentalDecorators on you tsconfig.json. Example:

{ "compilerOptions": { "emitDecoratorMetadata": true, "experimentalDecorators": true } }

Create you own Views

This example tries to show all possible cases in which you might need to use this utility.

class UserView extends JsonView { @JsonProperty username: string; @JsonProperty({ ignore: true }) password: string; @JsonProperty({ topic: 'custom' }) birthday: string; @JsonProperty({ topic: 'custom2' }) phone: string; }

Define you data object

const json = { username: "annon", password: "12345678", birthday: "1992-03-20", phone: "+0123456789" };

Serilize(without topic's)

const serialized = JsonObjectMapper.serialize(json, UserView).toString();

results:

{ username: "annon", birthday: "1992-03-20", phone: "+0123456789" }

Serilize(with topic)

const serialized = JsonObjectMapper.serialize(json, UserView, ['custom']).toString();

results:

{ username: "annon", birthday: "1992-03-20" }

Serilize(with topic)

const serialized = JsonObjectMapper.serialize(json, UserView, ['custom', 'custom2']).toString();

results:

{ username: "annon", birthday: "1992-03-20", phone: "+0123456789" }

Features

  • No-Initiation(Using only reference to class)
  • Renaming properties
  • Change data types
    • to Date
      • from String using Date.parse
      • from Integer using Date
    • to Integer
      • from String using Number
    • to Float
      • from String using Number
    • to Boolean
    • to String
    • to Object
  • Sub-Views(Recursivity)
    • Array sub-views
    • Single sub-view
  • Date values(String, Number, Date)
  • Serialize from Object Array
  • Serialize from Object
  • Serialize from String
  • Property Topic's

API:

JsonObjectMapper.serialize

This function always return Serialization object. And can using it with data as Array or Object.

Example
// from Array JsonObjectMapper.serialize([ { email: "john.smith@example.com", password: "123456" }, { email: "john.smith@example.com", password: "123456" }, { email: "john.smith@example.com", password: "123456" } ], UserView); // from Object JsonObjectMapper.serialize({ email: "john.smith@example.com", password: "123456" }, UserView);

Serialization

Serialization.toString(spaces:number = 4): string

This method return a string representation of object.

Serialization.toJson()

This method return a json object representation.

Packages

No packages published

Contributors 2

  •  
  •