我有一个JSON响应,其中所有双引号都用\
分隔。因此,要将内容打印为JSON格式,我需要将\"
替换为"
。
我正在使用Java的字符串replaceAll
方法来执行此操作,但无法达到相同的效果。
如下所示,将“”替换为“
String name ="{
id: 1,
name: "Leanne Graham",
username: "Bret",
email: "Sincere@april.biz",
address: {
street: "Kulas Light",
suite: "Apt. 556",
city: "Gwenborough",
zipcode: "92998-3874",
geo: {
lat: \"-37.3159\",
lng: \"81.1496\"
}";
name.replaceAll("\"",""");
答案 0 :(得分:0)
起初,您的json格式错误,由于地址和主要对象,缺少两个}。
由于缺少转义,您显示的Java代码也是错误的。 以下代码将编译并应执行您期望的操作:
de / test / Test.java
package de.tests;
public class Test
{
public static void main(final String[] args)
{
final String name = "{id: 1, name: \"Leanne Graham\", username: \"Bret\", email: \"Sincere@april.biz\", address: { street: \"Kulas Light\", suite: \"Apt. 556\", city: \"Gwenborough\", zipcode: \"92998-3874\", geo: {lat: \\\"-37.3159\\\", lng: \\\"81.1496\\\"}}}";
// System.out.println(name);
System.out.println(name.replaceAll("\\\\\"","\""));
}
}
这里的重点是常规的expressin转义,因为您需要转义不同的层-第一个是Java源代码本身,第二个是json字符串-因此您需要双重转义。
有关正则表达式的更多信息,请阅读类似Mastering regular expressins