Jak převést proměnné do json?

Chci poslat data json do ajaxu, ale jak převedete proměnné na json nebo převedete pole na json?

$(".confirm_order").click(function(event) {
    event.preventDefault();

    var street = $("#street").val();
    var location = $("#location").val();
    var number = $("#number").val();

    var f = ???

            $.ajax({
            type: 'post',
            url: "/orders",
            dataType: "json",
            data: f,
            success: function (l) { 
                alert("Done");
            }
            });
});

Odpověď

Pokud opravdu chcete převést data do JSON, musíte vytvořit objekt nebo pole a použít JSON.stringify (k dispozici v novějším prohlížeči a lze jej načíst zde):

var f = JSON.stringify({street: street, location: location, number: number});

ale nemůžete jen nastavit data atribut f pak. Musíte ji přiřadit jiné proměnné:

data: {data: f}

To vytvoří parametry POST takto:

data={"number":"value of number","location:...}

Zde však není důvod vytvářet JSON. Hodnoty bych poslal jako normální parametry příspěvku. K tomu stačí vytvořit objekt jako výše a přiřadit jej data :

data: {street: street, location: location, number: number}

Tím se vytvoří parametry POST:

street=valueofstreet&location=valueoflocation&...

Bylo by to jednodušší, protože nemusíte analyzovat JSON na straně serveru.