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

来源:互联网 发布:免费开源的cms 编辑:程序博客网 时间:2024/05/22 16:03
今天在使用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
完美解决! 
0 0
原创粉丝点击