简体   繁体   English

将Java Map对象转换为Json数组

[英]Converting Java Map object to Json array

My Spring MVC Controller is returning LinkedHashMap. 我的Spring MVC Controller返回LinkedHashMap。 I want to convert to Json Array in order to pass in AJAX. 我想转换为Json Array以便传递AJAX。 Also Suggest me the return type of getTime method 还建议我getTime方法的返回类型

Controller code: 控制器代码:

@RequestMapping("/activeSlots")
@ResponseBody
public String getTime(@RequestParam("date") String date){

    AvailableTimeSlot ts = new AvailableTimeSlot();
    List<String> bookedTime = ts.getInfo(date);
    LinkedHashMap<String,String> availTimeSlots = ts.availTime(bookedTime);
    Gson gson = new Gson();

    String json = gson.toJson(availTimeSlots);

        return json;
}`

Ajax Call Code Ajax呼叫代码

$( "#idDateField" ).change(function() {
         var dateval = $( "#idDateField" ).val();
         var sendData = {dateval: dateval}
         $.ajax({

                //url :"/activeSlots?date="+dateval ,
                 url :"activeSlots?date=" + dateval ,
            //      method : GET,
            //  contentType: 'application/json',
                success: function (data) {
                    alert("coming..")

                    alert(obj.length);
                        $("#nameid").val(data);                     

                           $("#idTimefield").val(data);

                        },
                        error:function(data) {
                            alert("error:"+data.val);
                        }

            });
        });`

Got my working; 我工作了 Here is the Solution Java Controller code: 这是解决方案Java控制器代码:

@RequestMapping("/activeSlots")
@ResponseBody
public String getTime(@RequestParam("date") String date){

    AvailableTimeSlot ts = new AvailableTimeSlot();
    List<String> bookedTime = ts.getInfo(date);
    LinkedHashMap<String,String> availTimeSlots = ts.availTime(bookedTime);

    Gson gson = new GsonBuilder().create();
    String json = gson.toJson(availTimeSlots);

    return json;
}

Ajax Call on JSP Ajax调用JSP

$( "#idDateField" ).change(function() {
         var dateval = $( "#idDateField" ).val();
         var sendData = {dateval: dateval}
         $.ajax({
                 url :"activeSlots?date=" + dateval ,
                success: function (data) {
                    alert(data);
                    $('#idTimefield').empty();
                    var times=JSON.parse(data);
                    var values= Object.values(times);
                    var keys = Object.keys(times);


                    for(i=0 ; i<values.length;i++){
                        $('#idTimefield').append('<option value="' + keys[i] + '">' + values[i] + '</option>');
                    }


                        },
                        error:function(data) {
                            alert("error:"+data.val);
                        }               
            });
        });     
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM