假设我需要替换下面的Json对象中“ name”的所有值。
String srt = "{\"name\":\"Jon\",\"calls\":[{\"name\":\"Jons\", \"number\":\"00000000\"}],\"missed\":{\"point\":{\"name\":\"Sara\"}}}";
str.replace("name", "Kiki");
输出:
{"Kiki":"Jon","calls":[{"Kiki":"Jons", "number":"00000000"}],"missed":{"point":{"Kiki":"Sara"}}}
不需要此代码输出
我尝试使用匹配器和ObjectMapper。它不起作用。
用“ Kiki”替换名称后,对象应该是
{"name":"Kiki","calls":[{"name":"Kiki", "number":"00000000"}],"missed":{"point":{"name":"Kiki"}}}
答案 0 :(得分:-1)
您可以使用以下正则表达式替换
: str = str.replaceAll("name\":\\s*\"[^\"]+?([^\\/\"]+)", "name\":\"Kiki");
或者您可以对字符串进行Json解析,并使用Json函数删除/替换'name'属性的值。
使用正则表达式的解决方案(完整):
public static void main(String[] args) {
String str = "{\"name\":\"Jon\",\"calls\":[{\"name\":\"Jons\", \"number\":\"00000000\"}],\"missed\":{\"point\":{\"name\":\"Sara\"}}}";
System.out.println("Input: " + str);
str = str.replaceAll("name\":\\s*\"[^\"]+?([^\\/\"]+)", "name\":\"Kiki");
System.out.println("Output: " + str);
}
输出
Input: {"name":"Jon","calls":[{"name":"Jons", "number":"00000000"}],"missed":{"point":{"name":"Sara"}}}
Output: {"name":"Kiki","calls":[{"name":"Kiki", "number":"00000000"}],"missed":{"point":{"name":"Kiki"}}}