在jsp页面怎么接收json字符串,然后怎么把json字符串转换成对象,再之怎么遍历json对象?
把json字符串转换成对象用ajax,jquery怎么做?以上的问题最好能给个例子说明下。回答的好分数可以再追加!!...
把json字符串转换成对象用ajax,jquery怎么做?以上的问题最好能给个例子说明下。回答的好分数可以再追加!!
展开
3个回答
展开全部
用jquery的ajax
$.post("xxx.action", { 参数名1: "值1", 参数名2: "值2" },
function(data){
//data为返回的json字符串,这里转对象
var json = eval("(" + data + ")");
//遍历json
for(var j in json) {
var key = j;
var value = json[j];
}
});
json字符串怎么来
JSONObject json = new JSONObject();
json.put("参数名1", "值1");
json.put("参数名2", "值2");
return json.toJSONString();
这里需要用到一个jar包fastjson.jar 已经给你放到附件里面
更多追问追答
追问
{ 参数名1: "值1", 参数名2: "值2" },这个是向后台发送的参数和值吗?值从哪里来?我用的struts2还需要像JSONObject这样做吗?
追答
如果你没有的话可以不用,这个是可选的,你用struts2是什么意思
展开全部
var data=[{'a':1,'b':'c'},{'a':2,'b':'d'}];
var json = JSON.parse(data);
for(var i=0;i<json.length;i++){
json[i].a
}
操作就随意了么,试试...前几天从后天往前台传json把我折腾残了...
var json = JSON.parse(data);
for(var i=0;i<json.length;i++){
json[i].a
}
操作就随意了么,试试...前几天从后天往前台传json把我折腾残了...
追问
你的JSON是哪里来的?你写的是把JSON对象转换成json字符串吧?
追答
是把json格式的字符串,转化成json对象...你见过字符串能点出属性来的么...
都忘了JSON哪来的了,JQuery哪个架包封好的...
难道是json-lib包...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是ajax做的,里面报错 获取json,转化成对象,遍历
function getclass(obj) {
loadtypesubject();
districtid = document.getElementById("districtId").value;
schoolid = document.getElementById("schoolId").value;
createXmlhttpRequest();
这里发送ajax请求
xmlhttp.open("get",
"multlink!getClassMessage?database=20130227155607281&districtid="
+ districtid + "&schoolid=" + schoolid + "&gradeid="
+ obj.value, true);
xmlhttp.send();
xmlhttp.onreadystatechange = statusClassChange;
}
// proxy loading the class message , this is callback function
function statusClassChange() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
selectClass = document.getElementById("classId");
selectSubject = document.getElementById("paperId");
deleteOption(selectClass);
selectSubject.options.length = 0 ;
selectSubject.options.add(new Option("--总成绩--", "allmark"));
这里获取json的值
flagmessage = xmlhttp.responseText;
这里把json转换成对象
smobj = eval(flagmessage);
这里遍历对象属性
for ( var i = 0; i < smobj.length; i++) {
flagname = smobj[i].classname;
flagid = smobj[i].classid;
option = createOption(flagid, flagname);
selectClass.appendChild(option);
}
}
}
这是一个N级联动的部分代码 ,应该能解决不的部分问题,这些代码本身没问题的,不会误导你
function getclass(obj) {
loadtypesubject();
districtid = document.getElementById("districtId").value;
schoolid = document.getElementById("schoolId").value;
createXmlhttpRequest();
这里发送ajax请求
xmlhttp.open("get",
"multlink!getClassMessage?database=20130227155607281&districtid="
+ districtid + "&schoolid=" + schoolid + "&gradeid="
+ obj.value, true);
xmlhttp.send();
xmlhttp.onreadystatechange = statusClassChange;
}
// proxy loading the class message , this is callback function
function statusClassChange() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
selectClass = document.getElementById("classId");
selectSubject = document.getElementById("paperId");
deleteOption(selectClass);
selectSubject.options.length = 0 ;
selectSubject.options.add(new Option("--总成绩--", "allmark"));
这里获取json的值
flagmessage = xmlhttp.responseText;
这里把json转换成对象
smobj = eval(flagmessage);
这里遍历对象属性
for ( var i = 0; i < smobj.length; i++) {
flagname = smobj[i].classname;
flagid = smobj[i].classid;
option = createOption(flagid, flagname);
selectClass.appendChild(option);
}
}
}
这是一个N级联动的部分代码 ,应该能解决不的部分问题,这些代码本身没问题的,不会误导你
追问
上面说是报错,下面又说没问题,到底有没有 问题?
这里获取json的值
flagmessage = xmlhttp.responseText;这一句是获取从action中传过来的json写法吧,所有从action传过来的json数据都是这样接收的吗?
追答
这是项目中的代码 ,没问题,打字打错了。接收的时候我是这么接收的。这是ajax的东西吧。这是比较通用的方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询