You're seeing those results because MVC uses Newtonsoft to deserialize. It's aware than an array is there, but it doesn't know how to assign values because the object key is being mapped to null.
This should work fine if you fix the JSON:
$.ajax({
type: "POST",
url: "/ExcelImport/SaveMappings",
data: { columnMappings: columnMappings },
dataType: "json",
success: function () { alert("Mapping Successful") },
failure: function () { alert("not working..."); }
});
This works in my jquery powered MVC implementations.