我处理来自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的字符串。答案 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);