楼主是想把json对象字符串作
{ "_id" : { "$oid" : "5a29fcf8e1382306c7e675b1" }}
-->
{ "id" : "5a29fcf8e1382306c7e675b1" }
如下处理吗?
如果是这样的话,我建议用json解析,再组包的办法 。json打组包的工具比较多。像开源jackson、谷歌Gson、阿里的FastJson.Gson等等。针对楼主的问题,我简单写了一个测试实现。随便写的,用的谷歌的Gson.
1 public class TestMain { 2 3 public static void main(String[] args) { 4 String str ="{ \"_id\" : { \"$oid\" : \"5a29fcf8e1382306c7e675b1\" }}"; 5 JsonParser parse =new JsonParser(); //创建json解析器 6 7 JsonObject json=(JsonObject)parse.parse(str); //创建jsonObject对象 8 JsonObject jso_id= json.get("_id").getAsJsonObject(); //得到_id 9 String objstr = jso_id.get("$oid").getAsString(); //得到$oid 10 System.out.println(objstr); 11 12 13 JsonObject jo = new JsonObject(); 14 jo.add("id", jso_id.get("$oid")); 15 System.out.println(jo.toString()); 16 }
以下是maven的引用包:
1 <dependency> 2 <groupId>com.google.code.gson</groupId> 3 <artifactId>gson</artifactId> 4 <version>2.8.2</version> 5 </dependency>
恩呢 是这样子。
public static void main(String[] args) { String aString = "{\"_id\":{\"$oid\":\"5a29fcf8e1382306c7e675b1\"}"; System.out.println(aString.replaceAll("\\{\"_id\"\\:\\{\"\\$oid", "id")); }
你自己试下,许多字符串中特殊字符的转义,以及正则表达式的特殊字符转义