jsp页面中,如何使用jquery拼接json格式的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp页面中,如何使用jquery拼接json格式的数据相关的知识,希望对你有一定的参考价值。

参考技术A 不知道你想做什么。
jquery是运行在浏览器端的一个js 函数库,json被浏览器解析之后就是 一个js字面量(或叫做对象) 。你说拼接,是不是把两个json的数据变成一个对象?我觉得这完全没必要吧,如果你需要同时获取两个json你可以在服务器端直接把这两次请求合并为一个,这样只用一次请求 速度还快一些 。
如果你非要获取两次然后拼接成一个对象也可行。
function callBack(json)
这里写你处理最终json的代码

$.getJSON("url1", function(json1) //获取第一个json
$.getJSON("url2", function(json2) //回调函数中获取第二个json
var key;
for (key in json2) //遍历第二个json对象添加到第一个json中
json1[key] = json2[key];
;
callBack(json1);
//处理最终得到的json对象
);
);追问

是这样的,我想动态的拼接json,
例如:
function checkuser(type)
var json ;
var username = $("#username").val();
var usercode = $("#usercode").val();
if(type == 1)
json = "username":username
else
json = "usercode ":usercode

追答

我不太明白你的拼接是什么意思,你的代码是获取表单数据然后创建一个对象,需要拼接吗?

追问

例如:
$.ajax(
type:"post"
,url:"/user/saveUser.do"
,data:"username":username
,dataType:"json"
,success:function(data)
if(data.code == "0")
alert("保存成功!");
else
alert("保存失败!");


);

我想动态修改data的参数!以前是直接data:"username":username
现在想把它替换掉,变成动态的

追答

提交data的值是checkuser方法会返回值吗?
你可以把这个值放在一个变量里面
比如
var userData=checkuser(typevalue);

$.ajax(
type:"post"
,url:"/user/saveUser.do"
,data:userData
,dataType:"json"
,success:function(data)
if(data.code == "0")
alert("保存成功!");
else
alert("保存失败!");


);

追问

不是,checkuser中的json格式,可以这样写,好像不能这样写吧!

追答

你没明白什么是json 。
javascript Object Notation

意思就是 JavaScript 对象的表达(或显示 )格式 。
在JavaScript中 任何对象都可以叫 JSON
但是在js中一般不这么叫,就叫字面量或对象。或者说Object,

本回答被提问者和网友采纳
参考技术B 放在function里
function doAjax(data)//data动态拼接的json串

$.ajax(
type:"post"
,url:"<%=path%>/user/saveUser.do"
,data:data //"username":username
,dataType:"json"
,success:function(data)
if(data.code == "0")
alert("保存成功!");
else
alert("保存失败!");


);

追问

怎么拼接,
function checkuser(type)
var json ;
var username = $("#username").val();
var usercode = $("#usercode").val();
if(type == 1)
json = "username":username
else
json = "usercode ":usercode

这种可以吗?

追答

可以
大括号内是key:value的形式
"username":username, "userpassword":password

jQuery EasyUI- DataGrid使用 从数据库查询得到数据显示在前台的jsp页面,如何实现?

最近刚学easyui,对于数据的填充,有所不明,使用MySQL数据库,使用easyui技术,编写考勤管理系统,进入页面后,显示数据库中当日的考勤记录,后台有数据,怎么显示在前台的主页上呢?

1、首先写入导出按钮和需要导出的datagrid列表。

2、点击导出按钮;获得需要导出的字段与不需要导出的数据进行数据处理,并且进行json解析。

3、异步操作进入后台获取数据。

4、后台将数据写入excel(其中还有一个帮助类)。

参考技术A $(function()
   $('#list_data').datagrid(   
        title:'应用系统列表',   
        iconCls:'icon-edit',//图标   
        width: 'auto',   
        height: 'auto',   
        nowrap: false,   
        striped: true,   
        border: true,   
        collapsible:false,//是否可折叠的   
        //fit: true,//自动大小   
        loadMsg: '加载中,请稍等',
        //data:jsondata,
        url:'login.do',   
        //sortName: 'code',   
        //sortOrder: 'desc',   
        remoteSort:false,    
        idField:'CARDID',   
        singleSelect:false,//是否单选   
        pagination:true,//分页控件   
        rownumbers:true,//行号   
        fitColumns:true,
        frozenColumns:[[   
            field:'ck',checkbox:true   
        ]],   
        columns:[[
            title:'区局ID',
            field:'CARDID',
            align:'center',
            width:100
        ,
            title:'区局',
            field:'CARDINFO',
            align:'center',
            width:100
        ,
            title:'网站',
            field:'CARDPHONE',
            align:'center',
            width:100    
        
        
        ]],
       
        
        toolbar: [   
            text: '添加',   
            iconCls: 'icon-add',   
            handler: function()    
                openDialog("add_dialog","add");   
               
        , '-',    
            text: '修改',   
            iconCls: 'icon-edit',   
            handler: function()    
                openDialog("add_dialog","edit");   
               
        , '-',   
            text: '删除',   
            iconCls: 'icon-remove',   
            handler: function()   
                delAppInfo();   
               
        ]
    );   
    //设置分页控件   
    var p = $('#list_data').datagrid('getPager');   
    
    $(p).pagination(   
        //pageSize: pageSize,//每页显示的记录条数,默认为10   
        pageList: [5,10,15],//可以设置每页记录条数的列表   
        beforePageText: '第',//页数文本框前显示的汉字   
        afterPageText: '页    共 pages 页',   
        displayMsg: '当前显示 from - to 条记录   共 total 条记录',
        onBeforeRefresh:function()  
            $(this).pagination('loading');  
            alert('before refresh');  
            $(this).pagination('loaded');  
         
    ); 
    
    );
      
   function openDialog()
       var ids = [];
       var rows = $('#list_data').datagrid('getSelections');
       for(var i=0; i<rows.length; i++)
           ids.push(rows[i].CARDID);
       
       alert(rows.length);
       alert(ids);
   

 类似这样? 不过easyui版本不一样的话 写法也不一样,最好是找到对应版本的官方文档去写,网上的实例往往都是比较旧的版本,最好只做参考,对照官方文档去写才是正道

追问

后台查出来的dataset或datatable需要转换为json格式,是怎么回事的呢?纠结了许久,还是搞不定它,哎哎。。。

追答

          

Map result = new HashMap();
        result.put("total", 13);// total键 存放总记录数,必须的
        result.put("rows", list);// rows键 存放每页记录 list
        String result2 = JSONObject.fromObject(result).toString();

后台写法,你是否已搞定?

本回答被提问者采纳

以上是关于jsp页面中,如何使用jquery拼接json格式的数据的主要内容,如果未能解决你的问题,请参考以下文章

jquery jsp页面拼接

如何使用jquery取出json格式的数据

如何从JSP页面调用RestFul Webservice并使用JSON对象?

怎么用jsp生成json格式数据,然后用js又怎样读取其数据?

SpringMVC框架下实现JSON(类方法中回传数据到jsp页面,使用jQuery方法回传)

jquery直接显示jsp返回的数据