@inertiagroup/apex
v1.4.4
Published
The apex packages allows you do variuos stuff with JSON data and some IOC concepts
Downloads
45
Maintainers
Readme
The apex packages allows you do variuos stuff with JSON data and some IOC concepts
You can convert a POJO into a JSON liek this
@JsonObject()
class JustObject { @JsonMember() friends: JustObject2[]; }
@JsonObject()
class JustObject2 { @JsonMember() name: string; }
const object = new JustObject();
const friend2 = new JustObject2();
friend2.name = "Mike";
object.friends = [friend2];
const expected = {
friends: [{
name: "Mike"
}]
};
const json = ApexObjectMapper.write<JustObject>(object);
You can also take a JSON and convert to a POJO as follows:
@JsonObject()
class JustObject2 { @JsonMember() name: string; }
@JsonObject()
class JustObject {
@JsonMember({
decoder: (value: any[]) => value.map(v => ApexObjectMapper.read<JustObject2>(v, JustObject2)),
encoder: (value: JustObject2[]) => value.map(v => ApexObjectMapper.write(v)),
})
friends: JustObject2[];
}
const json = { friends: [{ name: "Mike" }, { name: "John" }] };
const expected = new JustObject();
const friend2 = new JustObject2();
friend2.name = "Mike";
const friend3 = new JustObject2();
friend3.name = "John";
expected.friends = [friend2, friend3];
const object = ApexObjectMapper.read<JustObject>(json, JustObject);
expect(object).toEqual(expected);
@JsonObject()
class JustObject3 { @JsonMember() name: string; }
@JsonObject()
class JustObject2 { @JsonMember({ type: JustObject3 }) friend: JustObject3; }
@JsonObject()
class JustObject { @JsonMember({ type: JustObject2 }) friend: JustObject2; }
const json = { friend: { friend: { name: "Mike" } } };
const expected = new JustObject();
const friend2 = new JustObject2();
const friend3 = new JustObject3();
friend3.name = "Mike";
friend2.friend = friend3;
expected.friend = friend2;
const object = ApexObjectMapper.read<JustObject>(json, JustObject);
expect(object).toEqual(expected);