在jsp页面怎么接收json字符串,然后怎么把json字符串转换成对象,再之怎么遍历json对象?

把json字符串转换成对象用ajax,jquery怎么做?以上的问题最好能给个例子说明下。回答的好分数可以再追加!!
最新回答
清茶

2024-04-28 00:23:51

用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是什么意思
追问
我说用struts2框架开发的话,还需要JSONObject吗?
追答
只要你能传json字符串随便用什么技术都行,这里只是给你一个思路而已,struts2框架和JSONObject没什么必要的联系。
让月色乏味

2024-04-28 03:43:21

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把我折腾残了...
追问
你的JSON是哪里来的?你写的是把JSON对象转换成json字符串吧?
追答
是把json格式的字符串,转化成json对象...你见过字符串能点出属性来的么...
都忘了JSON哪来的了,JQuery哪个架包封好的...
难道是json-lib包...
当风起时

2024-04-28 02:11:34

这是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级联动的部分代码 ,应该能解决不的部分问题,这些代码本身没问题的,不会误导你
追问
上面说是报错,下面又说没问题,到底有没有 问题?

这里获取json的值
flagmessage = xmlhttp.responseText;这一句是获取从action中传过来的json写法吧,所有从action传过来的json数据都是这样接收的吗?
追答
这是项目中的代码 ,没问题,打字打错了。接收的时候我是这么接收的。这是ajax的东西吧。这是比较通用的方法