我有一个 Update
对象的实例,我想将它转换成它的 String JSON 表示形式,以便稍后使用。
我这样创建了更新对象:
Update update = new Update();
update.set("field", new SomeClass());
update.unset("otherField");
// etc
我最初的尝试是:
update.getUpdateObject().toString();
这种方法适用于大多数情况,但有时会失败,因为它无法序列化 SomeClass
的实例。这是堆栈跟踪:
java.lang.RuntimeException: json can't serialize type : class com.example.SomeClass
at com.mongodb.util.JSON.serialize(JSON.java:261)
at com.mongodb.util.JSON.serialize(JSON.java:115)
at com.mongodb.util.JSON.serialize(JSON.java:161)
at com.mongodb.util.JSON.serialize(JSON.java:141)
at com.mongodb.util.JSON.serialize(JSON.java:58)
at com.mongodb.BasicDBObject.toString(BasicDBObject.java:84)
我有可用的 MongoTemplate
和 MongoConverter
实例,但我不确定如何使用这些类来完成此任务。
问题是:
获取更新对象的 JSON 表示的正确方法是什么?
我使用的是 spring-data-mongodb 版本 1.1.0.M1。
最佳答案
您可以使用,
Update update = new Update();
JSONObject jsonObject = new JSONObject(new SomeClass());
update.set("field",JSON.parse(jsonObject.toString()));
update.unset("otherField");
System.out.println(update.getUpdateObject().toString());
关于java - 将 Spring Mongo 更新转换为 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12700268/