1.0.8 • Published 6 years ago

form-serialize-json v1.0.8

Weekly downloads
7
License
MIT
Repository
github
Last release
6 years ago

form-serialize-json

Serialize form data to Json (deep structure).

This script solved the problem of hierarchy name of Input in C#. serialises a form to an object. The use is the same with $.fn.serialize and $.fn.serializeArray, or serializeJson(array).

The keys are the form element names(split with dot) and the value is the the form element value. If multiple form elements have the same name with different values, the value will replace the origin value.

Support

FeatureNode.jsChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic supportYes5Yes4910.55
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic supportYesYesYes4YesYesYes

Install

Node.js

$ npm install form-serialize-json

Html

// serializeJson(array)
<script type="text/javascript" src="serialize-json.js">

// or jquery.fn.serializeJson
<script type="text/javascript" src="jquery.min.js">
<script type="text/javascript" src="serialize-json.js">

Use

form-serialize-json is surprisingly easy to use.

<form id="example">
    <input type="text" name="title" value="serialize-json">
    <input type="text" name="desc" value="demo serializeArray of form to json object.">
</form>
var serialize = require('form-serialize-json'),
    form = document.querySelector('#example');

var obj = serialize(form);
// obj -> { title: "serialize-json", desc: "demo serializeArray of form to json object." }

array fields (auto indexed)

Fields who's name ends with [] are always serialized as an array field.

<form id="example">
    <input type="text" name="user[]" value="Someone A">
    <input type="text" name="user[]" value="Someone B">
    <input type="text" name="user[100]" value="Someone C">
</form>
var serialize = require('form-serialize-json'),
    form = document.querySelector('#example');

var obj = serialize(form);
// obj -> { user: ["Someone A", "Someone B", empty × 98, "Someone C"] }
// empty × 98 is real empty

array fields (auto append)

Fields who's name ends with [] are always serialized as an array field.

<form id="example">
    <input type="text" name="data.index[0]" value="item 1">
    <input type="text" name="data.index[]" value="item 2">
    <input type="text" name="data.index[1]" value="item 3">
</form>
var serialize = require('form-serialize-json'),
    form = document.querySelector('#example');

var obj = serialize(form, true);  //protected
// obj -> { data: { index: ["item 1", "item3", "item 2"] } }

hierarchy objects

it will be come deep json structure if fields who has name with dot(.)

<form id="example">
    <input type="text" name="desc" value="demo serializeArray of form to json object.">
    <input type="text" name="users[0].name" value="user A">
    <input type="text" name="users[0].skills[0].name" value="nodejs">
    <input type="text" name="users[0].skills[0].years" value="5">
</form>
var serialize = require('form-serialize-json'),
    form = document.querySelector('#example');

var obj = serialize(form);
/**
obj -> {
    desc: "demo serializeArray of form to json object.",
    users: [
        {
            name: "user A",
            skills: [
                { name: "PHP", years: 12 },
                { name: "Ruby", years: 5 },
                { name: "C#", years: 2 }
            ]
        }
    ]
}
*

References

This module is based on ideas from jQuery serialize.

MIT License

Copyright (c) 2017 yiming.hsu mufasa.hsu@gmail.com

1.0.8

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago