Understanding $.ajax converters

Understanding $.ajax converters

Hi,

I'm not sure if I understood well what converters actually do. Here's an explanation from http://api.jquery.com/jquery.ajax/ :

  • converters (default: {"* text": window.String, "text html": true, "text json": jQuery.parseJSON, "text xml": jQuery.parseXML})
    Type: PlainObject
    An object containing dataType-to-dataType converters. Each converter's value is a function that returns the transformed value of the response. (version added: 1.5)


Concretely:

  1.                     converters: {
                            "text json": function(data) {
                                return data;
                            }
                        }


without this, one application from one tutorial does not work... here's the rest of the code:

  1.             $("#buttonDiv").click(function(e) {
                    var unetiPodaci = $("#orderForm").serialize();
                    e.preventDefault();
                    $.ajax({
                        url: "http://localhost",
                        type: "post",
                        data: unetiPodaci,
                        dataType: "json",
                        dataFilter: function(siroviOdgovor, dataType) {
                            var jsonOdgovor = $.parseJSON(siroviOdgovor);
                            var cleanData = {
                                totalItems: jsonOdgovor.totalItems,
                                totalPrice: jsonOdgovor.totalPrice
                            };
                            delete jsonOdgovor.totalItems;
                            delete jsonOdgovor.totalPrice;
                            cleanData.products = [];
                            for (prop in jsonOdgovor) {
                                cleanData.products.push({
                                    name: prop,
                                    quantity: jsonOdgovor[prop]
                                })
                            }
                            return cleanData;
                        },
                        converters: {
                            "text json": function(data) {
                                return data;
                            }
                        },
                        success: function(data) {
                            obradiPrimljeniOdgovor(data);
                        }
                    })
                })


Correct me if I'm wrong , maybe it means that the response (which is a text) will be converted to json? If so, then why is something like that needed when we have:

  1. dataType: "json",
    dataFilter: function(siroviOdgovor, dataType) {
          var jsonOdgovor = $.parseJSON(siroviOdgovor);

where it is already stated that we expect "json" and in dataFilter we parsed response to JSON?