javascript把JSON对象数组转换成JSON字符串

varhumen={'id':0,'name':'','age':0};varhumens=newArray();functionadd(id,name,age){hum... var humen= {
'id' : 0,
'name' : '',
'age' : 0
};

var humens = new Array();

function add(id,name,age){
humens.push( function () {
return function () {
return humen;
};
});

var men = humens[humens.length - 1];
men.id = id;
men.name = name;
men.age = age;
}

function main(){
add(0, '迪奥斯', 2);
add(1, '琼爱绸', 3);
add(2, '佰付梅', 1);

var json = JSON.stringify(humens);//好像行不通
//???如何把这些转换成
}
展开
 我来答
ck_2036
2013-03-15 · TA获得超过906个赞
知道小有建树答主
回答量:904
采纳率:33%
帮助的人:735万
展开全部
add方法改成
function add(id,name,age){
humens.push({
id: id,
name: name,
age: age
});
}
原因是你push进去的是function
function是不可序列化的, stringify之后会变成null
追问
那么怎么把序列化后的JSON数据用Jquery传到Struts2的Action中?
追答
js这边请求一下服务器就可以了
如果是异步提交的话
用你熟悉的脚本库发个ajax请求就行
以jQuery为例 $.post('xxx.action', { json: json });
如果是同步提交的话
用window.open('xxx.action?json=' + json, '_self');就行
或者做个表单(form), 修改表单的域(input.value = json), 然后再提交(form.submit();)
服务器action那边要有对应的setter方法
阳光上的桥
2013-03-15 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65814
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
<script language=javascript>
var humen= {
'id' : 0,
'name' : '',
'age' : 0
};
function json2str(o) {
var arr = [];
var fmt = function(s) {
if (typeof s == 'object' && s != null) return json2str(s);
return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
}
for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));
return '{' + arr.join(',') + '}';
}

document.writeln(json2str(humen));
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a19d193
2013-03-15 · TA获得超过3446个赞
知道大有可为答主
回答量:1464
采纳率:100%
帮助的人:1451万
展开全部
不是JSON.stringify的问题,把function add修改成以下代码就好了
function add(id, name, age) {
var arr = {id: id, name: name, age: age};

humens.push(arr);

return arr;

}
push方法的参数是一个值,或者一个函数的执行结果,不应该传入一个函数体
追问
那么怎么把序列化后的JSON数据用Jquery传到Struts2的Action中?
追答
struts2是一个form的id吗?你要求修改它的action属性?
$('#struts2').attr('action', $('#struts2').attr('action') + '?' + jsonString;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式