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 

在打字稿中。