为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 JSON 对象转换为 DBObject?

如何将 JSON 对象转换为 DBObject?

qq_笑_17 2021-09-12 14:33:10
我有一个 JSON 对象 obj,我想将它存储到 MongoDB 中:JSONObject obj = new JSONObject();obj.put("title", obj1.title);//For rules:Map m = new LinkedHashMap();// for rules, first create JSONArray  JSONArray ja = new JSONArray(); m = new LinkedHashMap();m.put("right_connective", "&&");m.put("attribute", "amount");m.put("operator", "<=");m.put("value", obj1.amount);m.put("rank", 1);m.put("encapsulated", "false");ja.add(m);m = new LinkedHashMap();m.put("left_connective", "&&");m.put("right_connective", "&&");m.put("attribute", "project");m.put("operator", "==");m.put("value", obj1.project);m.put("rank", 2);m.put("encapsulated", "false");ja.add(m);m = new LinkedHashMap();m.put("left_connective", "&&");m.put("right_connective", "&&");m.put("attribute", "type");m.put("operator", "==");m.put("value", obj1.type);m.put("rank", 3);m.put("encapsulated", "false");ja.add(m);m = new LinkedHashMap();m.put("left_connective", "&&");m.put("attribute", "car");m.put("operator", "==");m.put("value", obj1.car);m.put("rank", 4);m.put("encapsulated", "false");ja.add(m);obj.put("rule", ja);Document doc = Document.parse( obj.toString() );BasicDBObject dbObject = mapper.readValue(obj, BasicDBObject.class);collection.insert(dbObject);我收到“映射器无法解析为类型”的错误。我需要包含哪个导入语句?否则,你能建议替代方法吗?我不想走 MongoDocument 路线,因为 insertOne() 函数在写入数据库时跳过了一些文档。
查看完整描述

2 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

如果您正在使用,则不需要映射器org.json.JSONObject:


 DBObject object = (DBObject) JSON.parse(obj.toString());

 collection.insert(object)


查看完整回答
反对 回复 2021-09-12
?
哔哔one

TA贡献1854条经验 获得超8个赞

我相信您正在使用如下所示的 jackson.Create ObjectMapper 来解决“映射器无法解析为类型”


import com.fasterxml.jackson.databind.ObjectMapper; //import statement


ObjectMapper mapper = new ObjectMapper(); //initialization


查看完整回答
反对 回复 2021-09-12
  • 2 回答
  • 0 关注
  • 344 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信