Typescript/Angular2 项目中的 BSON ObjectID (Morphia) 表示
BSON ObjectID (Morphia) representation in Typescript/Angular2 Project
我有一个 Java class 代表一个客户,具有一些属性,如姓名、地址等。
我有 属性:
@Id
@Property("_id")
private ObjectId id;
将从 mongoDB 获取客户。一切都很好,所有属性都已填充。
然后我尝试通过 REST 将数据传输到 angular2 客户端
我在打字稿中有一个客户代表
export class Customer {
public id: string <---
在客户端的 rest 调用中映射
.map((response: Response) => <Customer> response.json())
我需要在此处放置什么,属性 将被映射并且我可以在 angular 客户端中使用它。
我试图通过 npm 安装 bson-objectid,但我不知道如何让它映射 id 属性。所有其他人都工作正常。
已找到解决方案!
创建
public YourAdapterName extends XMLAdapter<String, ObjectID> {
@Override
public String marshal(ObjectId v) throws Exception {
return v.toString();
}
@Override
public ObjectId unmarshal(String v) throws Exception {
return new ObjectId(v);
}
}
此适配器 returns ObjectID 的字符串表示,我可以使用
id: string
在打字稿中。
我有一个 Java class 代表一个客户,具有一些属性,如姓名、地址等。 我有 属性:
@Id
@Property("_id")
private ObjectId id;
将从 mongoDB 获取客户。一切都很好,所有属性都已填充。 然后我尝试通过 REST 将数据传输到 angular2 客户端 我在打字稿中有一个客户代表
export class Customer {
public id: string <---
在客户端的 rest 调用中映射
.map((response: Response) => <Customer> response.json())
我需要在此处放置什么,属性 将被映射并且我可以在 angular 客户端中使用它。 我试图通过 npm 安装 bson-objectid,但我不知道如何让它映射 id 属性。所有其他人都工作正常。
已找到解决方案! 创建
public YourAdapterName extends XMLAdapter<String, ObjectID> {
@Override
public String marshal(ObjectId v) throws Exception {
return v.toString();
}
@Override
public ObjectId unmarshal(String v) throws Exception {
return new ObjectId(v);
}
}
此适配器 returns ObjectID 的字符串表示,我可以使用
id: string
在打字稿中。