Spring 4杰克逊Hashmap让Json失去了钥匙的订购

时间:2016-03-23 10:30:49

标签: spring jackson

我正在使用Spring 4和Jackson。我试图从控制器返回一个LinkedHashMap到Ajax响应。 但是当Jackson将其转换为JSON时,LinkedHashMap中的键的顺序就会丢失。 如何维护记录的顺序。

控制器代码:

@ResponseBody
@RequestMapping(value = "/getLevel2", method = RequestMethod.POST)
public  LinkedHashMap<String, String> getLevel2(HttpServletRequest request)
{
        System.out.println("In getLevel2"+request.getParameterNames());

        String catId=request.getParameter("catId");
        String fkey=request.getParameter("key");
        LinkedHashMap<String, String> h=categoryService.getCategoryLevel2Map(2100,fkey);
        System.out.println(h);
        return h;
}

Ajax电话:

var jqxhr = $.ajax({
            type: "POST",
            url:"/a2bNext/getLevel2",
            cache: false,   
            data:'catId='+ catId+'&key='+selectedValue 

            } )
            .done(function(data) {

                $("#level2").empty();
                for (var key in data) {
                    value=data[key];
                    isLeaf=value.split('::')[1];
                    value=value.split('::')[0];

                    if(isLeaf==1)
                    {
                        option = $('<option></option>').attr("value", key).text(value);
                        $("#level2").append(option);
                    }
                    else
                    {
                        option = $('<option></option>').attr("value", key).attr("class","subdivide").text(value);
                        $("#level2").append(option);
                    }

                }
                $("#level2").show();

            })
            .fail(function() {
                alert( "error1" );
            })
            .always(function() {
                //alert( "complete" );
            });

        });

有人可以建议我如何以与LinkedHashMap中相同的顺序获取ajax响应中的键。

0 个答案:

没有答案