可以jQuery serialize()使用除&符号以外的其他分隔符吗?

时间:2012-09-20 15:51:33

标签: java javascript jquery

我正在寻找一些不错的解决方案。我的页面上有几个文本字段,我使用jQuery序列化方法通过Ajax发送这些文本字段。这个序列化的字符串在我的java方法中被解析为hashmap,其中key ='nameOfTextfield'nad value ='valueInTextfield'

例如,我有这个字符串 stdSel = value1& stdNamText = value2& stdRevText = value3 ,一切正常。

String[] sForm = serializedForm.split("&");
Map<String, String> fForm = new HashMap<String, String>();
for (String part : sForm) {
  String key = null;
  String value = null;
  try {
    key = part.split("=")[0];
    value = part.split("=",2)[1];
    fForm.put(key, value);
  //if textfield is empty
  } catch(IndexOutOfBoundsException e) {
    fForm.put(key, "");
  }
}

但是当某些文本字段中出现&符号时,此方法会崩溃,例如 stdSel = value1&amp; stdNamText = value2&amp; stdRevText = val&amp;&amp; ue3 。我的想法是,我会将&符号替换为searialized字符串中的分隔符,用于其他字符或更多字符。这是可能的好主意还是有更好的方法?

此致 的Ondrej

1 个答案:

答案 0 :(得分:0)

&符号 被序列化函数转义,因此它们不会破坏URL。

您需要从URL获取的字段是

value = URLDecoder.decode(value,"UTF-8");

但是,正如Pointy指出的那样,如果您使用的是Web框架而不是仅使用vanilla java.net java,那么您可能不需要这样做。