MongoDB 自带JSON类 序列化自定义对象为Json字符串解决方案
2014-12-10 17:35
453 查看
今天在使用MongoDB时,需要将自定义的POJO类通过mongoDB自带的JSON.serialize序列化成一个Json格式的字符串,但一直报json don't serialize object异常,又不想使用第三方的jar包,网上到处搜没搜到。最后看api文档实现ObjectSerialize也不行。后来没有办法就看这部分的源码,终于从源码中推测出可能的方案,一测试,完美解决。多的不说,上代码
主要部分是继承BasicDBObject,然后使用put方法增加key-value
完美解决!
<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
完美解决!
相关文章推荐
- JSON对象反序列化为Java对象的时候自定义Date类型的字符串格式
- 将实体类或者集合序列化为JSON字符串,将JSON字符串反序列化还原为对象
- 后台使用类将对象序列化为JSon字符串
- C#将Json字符串反序列化成List对象类集合
- Web前台传对象字符串到后台并让后台反序列化对象字符串的方法(ASP.NET) json对象和字符串的转换
- js对象序列化为json字符串
- 序列化上面创建的Person对象,使其成为一个JSON字符串
- C#将Json字符串反序列化成List对象类集合
- 此类目的是防治序列化Json字符串时的循环引用问题-------最好解决方案
- 自定义实现Json字符串向C#对象的转变
- c# 使用 Newtonsoft.Json 序列化json字符串以及,反序列化对象
- ASP.NET中把对象序列化成JSON字符串的三种方法
- C#将Json字符串反序列化成List对象类集合
- 对象序列化成Json字符串 及 反序列化成对象
- js对象序列化为json字符串
- 一个自定义的json序列化对象的方法
- C#将Json字符串反序列化成List对象类集合
- 用Json.NET将json字符串反序列化为json匿名对象(转)
- [K/3Cloud]将JSON字符串反序列化为C#动态对象
- [K/3Cloud]将JSON字符串反序列化为C#动态对象