将Json解析为DBObject

时间:2014-07-09 10:20:49

标签: java json mongodb

我有REST服务使用“ test / plain ”,基本上我收到的字符串是JSON字符串,我有以下代码来解析{ {1}}字符串JSON,以便我可以将其保存到DBObject

MongoDB

我的@Timed @POST @Consumes("text/plain") @Produces(MediaType.APPLICATION_JSON) public Response insertscreenview(String message) { // System.out.println(message); final Logger logger = LoggerFactory.getLogger(ScreenviewResource.class); logger.info("Screenview Insert Request Recieved" + "\n" + message); screenviewInstance = new Screenview(); tracInfoInstance = new TracInfo(); BasicDBObject ageRangeId; GeoCheckManager geoCheckInstance = new GeoCheckManager(); boolean brCheck; try { ObjectMapper mapper = new ObjectMapper(); JsonNode actualObj = mapper.readTree(message); System.out.println(message); DBObject objInstance = (DBObject)JSON.parse(message); ...} 字符串看起来如下

JSON

它给我的错误如下,我无法找到原因。

  

java.lang.ClassCastException:java.util.HashMap无法强制转换为   com.mongodb.DBObject

2 个答案:

答案 0 :(得分:2)

您可以使用DBObject而不是使用BasicDBObject,而BasicDBObject obj= new BasicDBObject(JSON.parse(message));的构造函数将Map作为输入:

BasicDBObject obj = mapper.readValue(message, BasicDBObject.class);

或使用ObjectMapper:

{{1}}

答案 1 :(得分:1)

将字符串解析为DBObject的最新方法:

BasicDBObject dbObject = com.mongodb.BasicDBObject.parse(rawJsonString)

请注意,这可能仅应用于免费模式json对象,大多数情况下,诸如Springs MongoDBTemplate / MongoRepository之类的东西可以用于处理映射。