SO - Serializing to JSON in Knockout.js

http://stackoverflow.com/questions/8758593/knockout-js-serialize-to-json-a-class

by kougiland

HTML

<script src="http://rniemeyer.github.com/KnockMeOut/Scripts/knockout-latest.debug.js"></script>
<div id="users-create">
        <form data-bind='submit: saveUser'>
        <div>
            <label for="login">
                Login</label>
            <input type="text" name="login" class="required" data-bind="value: newUser().Login" />
        </div>
        <div>
            <label for="firstname">
                Firstname</label>
            <input type="text" name="firstname" class="required" data-bind="value: newUser().FirstName" />
        </div>
        <div>
            <label for="lastname">
                Lastname</label>
            <input type="text" name="lastname" class="required" data-bind="value: newUser().LastName" />
        </div>
        <div>
            <label for="email">
                Email</label>
            <input type="text" name="email" class="required email" data-bind="value: newUser().Email" />
        </div>
        <div>
            <label for="password">
                Password</label>
            <input type="password" name="password" class="required" data-bind="value: newUser().Password" />
        </div>
        <div class="form-submit">
            <input type="submit" value="Valider" />
        </div>
        </form>
    </div>

JavaScript

var User = function () {
    this.Login = ko.observable();
    this.FirstName = ko.observable();
    this.LastName = ko.observable();
    this.Password = ko.observable();
    this.Email = ko.observable();
};

var UsersPage = function () {
    var self = this;

    self.users = ko.observableArray([new User()]);
    self.newUser = ko.observable(new User());

    self.saveUser = function () {
        alert(ko.toJSON(self.newUser()));
    };
};

ko.applyBindings(new UsersPage());