您的位置:首页 > 数据库 > Mongodb

MongoDB 自带JSON类 序列化自定义对象为Json字符串解决方案

2014-12-10 17:35 453 查看
今天在使用MongoDB时,需要将自定义的POJO类通过mongoDB自带的JSON.serialize序列化成一个Json格式的字符串,但一直报json don't serialize object异常,又不想使用第三方的jar包,网上到处搜没搜到。最后看api文档实现ObjectSerialize也不行。后来没有办法就看这部分的源码,终于从源码中推测出可能的方案,一测试,完美解决。多的不说,上代码

<span style="font-family:Microsoft YaHei;font-size:10px;">public class Book extends <span style="background-color: rgb(255, 255, 255);"><span style="color:#ff0000;">BasicDBObject </span></span>{
private String name;
private Date date = new Date();
private String [] users;
public Book() {
this.put("name", name);
this.put("date", date);
this.put("users", users);
}
public String getName() {
return name;
}
public void setName(String name) {
this.put("name", name);
this.name = name;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.put("date", date);
this.date = date;
}
public String[] getUsers() {
return users;
}
public void setUsers(String[] users) {
this.put("users", users);
this.users = users;
}
}</span>
测试:

<span style="font-family:Microsoft YaHei;">MongoClient client = new MongoClient("localhost", 27017);
DB db = client.getDB("dadsf");
DBCollection book = db.getCollection("books");
Book b = new Book();
b.setName("javascript");
b.setUsers(new String[]{"a","b","c"});
String bs = JSON.serialize(b);
System.out.println(bs);
DBObject o = (DBObject) JSON.parse(bs);
book.save(o); </span>


主要部分是继承BasicDBObject,然后使用put方法增加key-value
完美解决!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: