java - 将 Spring Mongo 更新转换为 JSON 字符串

标签 java spring mongodb spring-data spring-data-mongodb

我有一个 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)

我有可用的 MongoTemplateMongoConverter 实例,但我不确定如何使用这些类来完成此任务。

问题是:

获取更新对象的 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/

相关文章:

java - 用户登录后访问登录页面,如何重定向到首页?

java - 服务器端口未收到 UDP 消息

java - 在mapstruct映射器中实现自定义行为的问题

java - 下载 spring 及其依赖项

java - 在 Spring Boot 中配置 0-legged OAuth 1.0

javascript - repl Node js问题SyntaxError : Unexpected identifier

java - Eclipse 未启动(JVM 已终止。退出代码=1)

java - 使用 getBase Station Latitude()/Longitude() 的 CDMA android 手机的基站位置

mongodb - Mongodb $geoNear 查询 - 不正确的扫描数字和不正确的结果

mongodb - kafka mongo db源连接器,在kubernetes上运行mongo db