在Typescript / Angular2项目中的BSON ObjectID(Morphia)表示

时间:2016-11-01 19:50:23

标签: mongodb angular typescript mapping bson

我有一个Java类,代表一个客户,其中包含名称,地址等属性。 我有财产:

@Id
@Property("_id")
private ObjectId id;

客户将从mongoDB获取。一切都很好,所有的属性都被填满。 然后我尝试通过REST将数据传输到angular2客户端 我在typescript中有一个Customer表示

export class Customer {
    public id: string <---

在客户端的休息呼叫内映射

.map((response: Response) => <Customer> response.json()) 

我需要放在这里,该属性将被映射,我可以在角度客户端中使用它。 我试图通过npm安装bson-objectid,但我不知道如何让它来映射id属性。所有其他人都工作正常。

1 个答案:

答案 0 :(得分:0)

找到解决方案! 创建一个

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);
   }
}

此适配器返回ObjectID的字符串表示形式,我可以使用

id: string 
在Typescript中的