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

时间:2017-01-03 05:24:39

标签: javascript java jquery json ajax

我在前端以json格式从Servlet接收Java字符串列表。简而言之,我希望根据来自另一个Dropbox的选择填充一个选择而不刷新页面。

即。如果用户从第一个选择菜单中选择一个类别,它会在数据库中触发查询以选择与该类别相关的所有参数,然后填充另一个选择框。我打算在没有页面刷新的情况下这样做。

以下是我的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); 
}

我在select菜单的“onchange”事件中调用此Java代码。

下面是我的jQuery ajax代码:

 $("#bellCategorySel").change(function(e) { 
   $.ajax({
   type : 'POST',
   cache : false,
   data : {
    bellCategorySel : document.getElementById("bellCategorySel").value
   },
   dataType: 'json',
   url : '/AnalysisPanel/gaussianbell',
   success : function(jsonResponse) {
     var name = $.parseJSON(jsonResponse.name);
     var tostr = name.toString();
     var commsep = tostr.split(",");

     alert(commsep);


    }
 });
   e.preventDefault();
   return false;
});

});

现在问题是我收到以下格式的字符串:

["a", "b", "c"]

当我解析它时,它变为:

a,b,c

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

我对这些东西不熟悉,所以请放轻松我:)

5 个答案:

答案 0 :(得分:1)

正如我在评论中提到的那样:

  1. 您无需再次分割字符串以生成数组,而是使用响应数据。
  2. 您无需再次解析它,因为dueDate会自动为您执行此操作。
  3. 使用这种方式:

    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"], // <-----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
    });
    $('#myselect').empty().append(opts); //<-----put the options in select element.

答案 1 :(得分:0)

当您获得引用Array的json对象时,您应该能够遍历数组而不是将其用作字符串并根据逗号进行拆分

答案 2 :(得分:0)

你也可以使用split来用逗号分割字符串,如下所示:

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

答案 3 :(得分:0)

只需获取初始数组并将其直接解析为FragmentTransaction ft = fragmentManager.beginTransaction(); //ft.detach(fragment).attach(fragment).commitAllowingStateLoss(); // crashing ft.replace(getView().getId(), fragment).commitAllowingStateLoss(); // not crashing

<option>

答案 4 :(得分:0)

var res = "a,b,c".split(","); 
console.log(res);