码迷,mamicode.com
首页 > Web开发 > 详细

构造AJAX参数, 表单元素JSON相互转换

时间:2016-05-06 16:11:36      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

ajax提交服务器数据, 整理一下转换方法。

HTML:

<form id="fm" name="fm" action="">
        <input name="UserName" type="text" value="UserName1"/>
    </form>
    <input name="UserId" id="UserId" type="text" value="UserId1"/>

 

1.表单元素转QueryString

var q = $(‘#fm,#UserId‘).serialize(); //q = UserName=UserName1&UserId=UserId1

 

2.字符串, JSON 互相转换

var obj = jQuery.parseJSON(‘{"name":"John"}‘);
alert( obj.name === "John" );

 

可以利用jquery-json插件实现转换,直接引用示例

技术分享
技术分享
var thing = {plugin: ‘jquery-json‘, version: 2.3};
var encoded = $.toJSON( thing );
// ‘{"plugin":"jquery-json","version":2.3}‘
var name = $.evalJSON( encoded ).plugin;
// "jquery-json"
var version = $.evalJSON(encoded).version;
// 2.3
技术分享
技术分享

 

3.表单,元素转Name,Value数组

var arr = $("#fm,#UserId").serializeArray();
/*[ 
     {name: ‘UserName‘, value: ‘"UserName"1‘}, 
     {name: ‘UserId‘, value: ‘UserId‘}
  ] */

 

4. 表单元素转JSON

技术分享
技术分享
$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || ‘‘);
        } else {
            o[this.name] = this.value || ‘‘;
        }
    });
    return o;
};
var obj = $(‘form‘).serializeObject();
/*obj: Object
UserId: "UserId1"
UserName: "UserName1"
__proto__: Object*/
技术分享
技术分享

 

5. JSON2FORM

$.getJSON(‘url_to_file‘, function(data) {
    for (var i in data) {
        $(‘input[name="‘+i+‘"]‘).val(data[i]);
    }
}

Google过程中发现一个更强大的插件 http://code.google.com/p/jquery-load-json/

 

技术分享
技术分享
data = {
                    "Name":"Emkay Entertainments",
                    "Address":"Nobel House, Regent Centre",
                    "Contact":"Phone"
        }  
 $(‘div#data‘).loadJSON(data);
 
 <div id="data">
            <h1 id="Name">Emkay Entertainments</h1>
            <label for="Address">Address:</label>
            <span id="Address">Nobel House, Regent Centre</span>        
            <label for="Contact">Contact by:</label>
            <span id="Contact">Phone</span>
        </div>
技术分享
技术分享


ajax提交参数是,要注意提交参数的类型。如easyui grid 参数只能用JSON,不支持QueryString

构造AJAX参数, 表单元素JSON相互转换

标签:

原文地址:http://blog.csdn.net/hj7jay/article/details/51315169

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!