Package Exports
- json-mapper-object
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (json-mapper-object) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
json-mapper-object
介绍(Introduction)
背景:对于单页应用,数据源是从API服务器获得的。 我们不用直接使用api数据。这时就需要适配器层赖根据需要转换数据。 此外,该适配器与API服务器的数据依赖关系相反(API Server被视为不可控制的非常不可靠,因为数据结构可能由后端 编码器为某些特定目的编辑)到我们的适配器这变得可靠。 因此,该库被创建为适配器。
Get Started
USING
此库依赖lodash,使用前确保有安装此依赖
npm install json-mapper-object --save
or
yarn add json-mapper-objectExample
import {MapperEntity,JsonProperty,serialize} from 'json-mapper-object';
class Student {
@JsonProperty('name')
fullName=void 0;
constructor() {
}
}
class Address {
@JsonProperty('first-line')
firstLine=void 0;
@JsonProperty('second-line')
secondLine=void 0;
@JsonProperty({clazz: Student})
student=void 0;
city=void 0;
constructor() {
}
}
class Person {
@JsonProperty('Name')
name=void 0;
age=void 0;
@JsonProperty('xing')
surname=void 0;
age=void 0;
@JsonProperty({clazz: Address, name: 'AddressArr'})
addressArr=void 0;
@JsonProperty({clazz: Address, name: 'Address'})
address=void 0;
constructor() {
}
}现在这里是API服务器返回的数据,假设它已经被解析为JSON对象。
let json = {
"Name": "Mark",
"xing": "Galea",
"age": 30,
"AddressArr": [
{
"first-line": "Some where",
"second-line": "Over Here",
"city": "In This City",
"student": {
name1: "Ailun"
}
},
{
"first-line": "Some where",
"second-line": "Over Here",
"city": "In This City",
"student": {
name1: "Ailun"
}
}
],
"Address": {
"first-line": "Some where",
"second-line": "Over Here",
"city": "In This City",
"student": {
name: "Ailun"
}
}只需使用以下代码即可映射。 该映射基于@JsonProperty装饰器元数据。
const person = MapperEntity(Person, json);
const json = serialize(person) // 反序列化