在Angular中将类映射到JSon

时间:2018-04-13 08:09:49

标签: typescript angular5

我有一个班级

export class User {
constructor(public firstname:string,
public lastname:string
public email:string
public password:string){}
}

我想将它作为Json发送,但User数据应该是另一个对象内的Json对象。最终的json应该如下所示

{
"external-profile":{
"firstname":"something",
"lastname":"something",
"email":"some@something",
"password":"something"
}

}

我怎么能在Angular中做到这一点?我尝试了以下两种方法但他们没有工作

1)创建User类型的对象并执行JSON.stringify(user)生成

{
    "firstname":"something", <-- not embedded in external-profile
    "lastname":"something",
    "email":"some@something",
    "password":"something"
    }

2)创建另一个类UserProfiles如下

class UserProfile{
constructor(public externalProfile:User){} //I can't use hypen separated variable names in Typescript it seems.
}

如果我创建了UserProfileJSON.stringify类型的对象,则上面会生成。

{
    "externalProfile":{  <-- I want external-profile, not externalProfile
    "firstname":"something",
    "lastname":"something",
    "email":"some@something",
    "password":"something"
    }

}

1 个答案:

答案 0 :(得分:1)

变量和参数名称不能包含特殊字符,但如果引用类字段,则只能将构造函数参数的语法糖用于字段:

class UserProfile{
    'external-profile': User
    constructor(externalProfile:User){
        this["external-Profile"] = externalProfile;
    }
}

你不需要另一节课,但你可以打电话:

JSON.stringify({ 'external-profile': user })