概述
今天在使用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
最后
以上就是自然鱼为你收集整理的MongoDB 自带JSON类 序列化自定义对象为Json字符串解决方案的全部内容,希望文章能够帮你解决MongoDB 自带JSON类 序列化自定义对象为Json字符串解决方案所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复