我是靠谱客的博主 自然鱼,最近开发中收集的这篇文章主要介绍MongoDB 自带JSON类 序列化自定义对象为Json字符串解决方案,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天在使用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字符串解决方案所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部