在Java中将ObjectID(Mongodb)转换为String

时间:2015-03-04 20:48:59

标签: java regex mongodb

我处理来自PHP API的记录,它将我的MongoDB文档作为JSON(json_enoded)返回。

我想要的只是一个简单的函数,它从MongoId获取实际的id,如下所示:

这是API到我的java应用程序中的记录:

 String id =    cat.getString("_id");
 String id =   "{\"$id\":\"54f76bb7404f9990010041b2\"}"

cat 是我从记录中获取的JsonObject;

顺便说一下,我从用PHP编写的API中获取记录,并且此API的所有响应都是json_encoded,所以它们实际上是字符串

我想要这个:

 String id =   54f76bb7404f9990010041b2 

有什么简单的方法吗?

编辑:我没有使用JAva mongo驱动程序,这些文件是来自Api的字符串。

3 个答案:

答案 0 :(得分:1)

String.split(":")然后从{到最后一个索引的第一个索引的substring怎么样?对不起,简要描述一下。如果需要,我可以提供一个代码示例。

String id = "{'$id':'54f76bb7404f9990010041b2'}";
String[] tokens = id.split(":");
String valueToken = tokens[1];
valueToken = valueToken.substring(1,valueToken.lastIndexOf("'"));
System.out.println(valueToken);

答案 1 :(得分:1)

我使用了@ Aminda的回答并使用了这个:

 String mongo_id = "{\"$id\":\"54f76bb7404f9990010041b2\"}"

 String MongoIdToString(String mongo_id){
    return mongo_id.split(":")[1].substring(mongo_id.indexOf("\"")).split("\"")[0];
}

  String mongo_id = MongoIdToString(mongo_id);

这会产生:

  mongo_id =  54f76bb7404f9990010041b2

感谢所有人;

答案 2 :(得分:0)

执行类似的操作(假设您的字符串为:"{_id:....}"

String s = yourId.split["::][1];
String id = s.subString(0, s.length - 1);