我正在使用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响应中的键。