This a simple package to mapping a json object.
npm install typescript-json-object-mapperyarn add typescript-json-object-mapperTo work with decorators, you need first enable emitDecoratorMetadata y experimentalDecorators on you tsconfig.json. Example:
{ "compilerOptions": { "emitDecoratorMetadata": true, "experimentalDecorators": true } }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; }const json = { username: "annon", password: "12345678", birthday: "1992-03-20", phone: "+0123456789" };const serialized = JsonObjectMapper.serialize(json, UserView).toString();results:
{ username: "annon", birthday: "1992-03-20", phone: "+0123456789" }const serialized = JsonObjectMapper.serialize(json, UserView, ['custom']).toString();results:
{ username: "annon", birthday: "1992-03-20" }const serialized = JsonObjectMapper.serialize(json, UserView, ['custom', 'custom2']).toString();results:
{ username: "annon", birthday: "1992-03-20", phone: "+0123456789" }- No-Initiation(Using only reference to class)
- Renaming properties
- Change data types
- to Date
- from String using
Date.parse - from Integer using
Date
- from String using
- to Integer
- from String using
Number
- from String using
- to Float
- from String using
Number
- from String using
- to Boolean
- to String
- to Object
- to Date
- 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
This function always return Serialization object. And can using it with data as Array or Object.
// 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);This method return a string representation of object.
This method return a json object representation.
