-1

我想使用它,但我从服务器获取的字符串以 Json 常规形式出现。我的意思是没有\

  JSONParser parser=new JSONParser();

  System.out.println("=======decode=======");

  String s="[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]";
  Object obj=parser.parse(s);
  JSONArray array=(JSONArray)obj;
  System.out.println("======the 2nd element of array======");
  System.out.println(array.get(1));
  System.out.println();

  JSONObject obj2=(JSONObject)array.get(1);
  System.out.println("======field \"1\"==========");
  System.out.println(obj2.get("1"));    


  s="{}";
  obj=parser.parse(s);
  System.out.println(obj);

  s="[5,]";
  obj=parser.parse(s);
  System.out.println(obj);

  s="[5,,2]";
  obj=parser.parse(s);
  System.out.println(obj);
4

1 回答 1

2

为了在 Java 中发送斜杠,您需要对它们进行转义。

因此,假设您想要接收{\"key\": \"value"\},除了转义引号之外,您还需要转义每个斜杠:String s = "{\\\"key\\\": \\\"value\\\"}";三个一组中的前两个斜杠用于转义并产生一个斜杠。下一个斜线用于转义引号,这是因为 Java 如何将字符串括在引号中。

现在,这就是如何做到这一点,但我认为如果你真的需要这样做,值得考虑吗?任何 JSON 解析器都应该能够处理非斜线响应。

于 2013-04-08T21:49:36.023 回答