我有一个要存储到MongoDB中的JSON对象obj:
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()函数在写入数据库时会跳过一些文档。
答案 0 :(得分:1)
如果您使用org.json.JSONObject
,则不需要映射器:
DBObject object = (DBObject) JSON.parse(obj.toString());
collection.insert(object)
答案 1 :(得分:0)
我相信您正在使用jackson.Create如下所示的ObjectMapper来解决“映射器无法解析为类型”
import com.fasterxml.jackson.databind.ObjectMapper; //import statement
ObjectMapper mapper = new ObjectMapper(); //initialization