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

如题所述

第1个回答  2012-11-09
不知道你想做什么。
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,

本回答被提问者和网友采纳
第2个回答  2012-11-09
放在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 }

相似回答