【问题标题】:Converting Java Map object to Json array将 Java Map 对象转换为 Json 数组
【发布时间】:2018-03-22 23:36:34
【问题描述】:

我的 Spring MVC 控制器正在返回 LinkedHashMap。我想转换为 Json 数组以传入 AJAX。还建议我getTime方法的返回类型

控制器代码:

@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 调用代码

$( "#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);
                        }

            });
        });`

【问题讨论】:

    标签: java json spring-mvc gson


    【解决方案1】:

    得到我的工作;这是解决方案 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;
    }
    

    JSP 上的 Ajax 调用

    $( "#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);
                            }               
                });
            });     
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多