Javascript 无法在jquery ajax中使用逗号分隔符拆分JSON对象

Javascript 无法在jquery ajax中使用逗号分隔符拆分JSON对象,javascript,java,jquery,json,ajax,Javascript,Java,Jquery,Json,Ajax,我在前端收到一个来自Servlet的json格式的Java字符串列表。简单地说,我希望在不刷新页面的情况下,根据从另一个dropbox中的选择填充一个select i、 e.如果用户从第一个选择菜单中选择一个类别,它将在数据库中触发一个查询,以选择与该类别相关的所有参数,然后填充另一个选择框。我打算在不刷新页面的情况下执行此操作 下面是我的java代码: @Override protected void doPost(HttpServletRequest req, HttpServletResp

我在前端收到一个来自Servlet的json格式的Java字符串列表。简单地说,我希望在不刷新页面的情况下,根据从另一个dropbox中的选择填充一个select

i、 e.如果用户从第一个选择菜单中选择一个类别,它将在数据库中触发一个查询,以选择与该类别相关的所有参数,然后填充另一个选择框。我打算在不刷新页面的情况下执行此操作

下面是我的java代码:

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  String categoryValue = req.getParameter("bellCategorySel");
  List<String> paramList = insightDbConn.getParametersList(categoryValue);
  String parsedParamList = new Gson().toJson(paramList);

  PrintWriter out= resp.getWriter(); 
  JSONObject json = new JSONObject(); 
  json.put("name", parsedParamList); 
  out.print(json); 
}
现在的问题是,我正在接收以下格式的字符串:

[甲、乙、丙]

当我解析它时,它变成:

a、 b,c

我无法基于逗号分隔符拆分字符串,以便根据逗号分隔后得到的数组填充第二个选择菜单


我对这个东西有点陌生,所以请对我说得轻松点:

当你得到json对象时,它引用了数组,你应该能够遍历数组,而不是将其作为字符串使用,并基于逗号进行拆分,你也可以使用拆分按逗号拆分字符串,如下所示:

var array = string.split(',');

正如我在评论中提到的:

您不需要拆分字符串来再次生成数组,而是使用响应数据。 您不需要再次解析它,因为dataType:json会自动为您解析它。 这样做:

success : function(jsonResponse) {
   var arr = jsonResponse.name,  // <-----the array ["a", "b", "c"]
       opts = '<option value="0">Please select...</option>'; // <---default option
   $.each(arr, function(key, val){
      opts += '<option value="' + val + '">' + val + '</option>'; //<----generate options
   });
   $('#targetSelectElement').empty().append(opts); //<-----put the options in select element.
}

var arr=[a,b,c],//只需获取初始数组并将其直接解析到

var res=a、b、c.分割,;
console.logres;它的回调函数中的Array.prototype.map填充您的列表项无需再次拆分它来创建数组。这是额外的工作,如数组>字符串>再次拆分到数组。此外,也不需要使用$.parseJSON,因为您已经有了数据类型:'json',它会自动为您执行此操作。你需要的只是在数组上迭代并将选项放在select中。确切地说,使用初始数组是非常简单的。你可以在上面的代码片段中看到,我已经这样做了。。。但它不起作用:它要么给我关于拆分函数的错误,要么就不起作用work@charlietfl是的,我也怀疑这一点,所以我只是换了工作。谢谢你的指点。尝试了你的解决方案。以下是我得到的错误:。在这里,你可以看到我得到的数组类型,明白了:只需要解析一次,不知道为什么。谢谢,顺便说一句
success : function(jsonResponse) {
   var arr = jsonResponse.name,  // <-----the array ["a", "b", "c"]
       opts = '<option value="0">Please select...</option>'; // <---default option
   $.each(arr, function(key, val){
      opts += '<option value="' + val + '">' + val + '</option>'; //<----generate options
   });
   $('#targetSelectElement').empty().append(opts); //<-----put the options in select element.
}
success : function(data) {
    var $sel = $('#selectID').html($('<option>',{text:'Pick one', value:''}));
    $.each(data.name, function(_, val){
        $sel.append( $('<option>',{text:val, value:val}) ); 
    });
}