Java将字符串中的\“替换为”

时间:2018-08-18 11:30:33

标签: java string replaceall

我有一个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("\"",""");

1 个答案:

答案 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