0

我正在尝试通过 HTTP POST 将以下参数发送到服务器:

["my_session_id","{this=that, foo=bar}"]

但是由于散列周围的引号,服务器正在返回解析错误。

我正在尝试使用这样的正则表达式删除它们:

params.replaceAll("\\\"\\{", "\\{");
params.replaceAll("\\\"\\}", "\\}");

老实说,我不知道自己在做什么。请帮忙。

提前致谢!

4

2 回答 2

2

这里有两个问题:首先,您没有重新分配字符串。Strings 在 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 也支持它。

于 2013-01-19T04:29:00.843 回答
0

您使用正则表达式 replaceAll 是否有原因?或者,您可以尝试:

 String parameters = parameters.replace("{", "\\{").replace("}", "\\}");
于 2013-01-19T04:39:44.753 回答