我正在尝试通过 HTTP POST 将以下参数发送到服务器:
["my_session_id","{this=that, foo=bar}"]
但是由于散列周围的引号,服务器正在返回解析错误。
我正在尝试使用这样的正则表达式删除它们:
params.replaceAll("\\\"\\{", "\\{");
params.replaceAll("\\\"\\}", "\\}");
老实说,我不知道自己在做什么。请帮忙。
提前致谢!
这里有两个问题:首先,您没有重新分配字符串。String
s 在 Java 中是不可变的(无法更改),因此您必须分配结果。其次,您正在替换"}
而不是}"
.
这是我使用的:
String params = "[\"my_session_id\",\"{this=that, foo=bar}\"]";
params = params.replaceAll("\\\"\\{", "\\{");
params = params.replaceAll("\\}\\\"", "\\}");
System.out.println(params);
打印出来:
["my_session_id",{this=that, foo=bar}]
PS:一点建议,使用JSON。Android 具有出色的 JSON 处理能力,PHP 也支持它。
您使用正则表达式 replaceAll 是否有原因?或者,您可以尝试:
String parameters = parameters.replace("{", "\\{").replace("}", "\\}");