在jsp页面怎么接收json字符串,然后怎么把json字符串转换成对象,再之怎么遍历json对象?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在jsp页面怎么接收json字符串,然后怎么把json字符串转换成对象,再之怎么遍历json对象?相关的知识,希望对你有一定的参考价值。
把json字符串转换成对象用ajax,jquery怎么做?以上的问题最好能给个例子说明下。回答的好分数可以再追加!!
用jquery的ajax
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没什么必要的联系。
参考技术A 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包...
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的东西吧。这是比较通用的方法
java后台的json值怎么传给jsp页面,并进行遍历
首先看你的后台是用的什么。1、servlet,把json放在request(session)对象里,然后返回,jsp在request里取。
2、框架,放在form表单里带回去,jsp页面用标签直接调用。
遍历的方式很多,《% %》的方式 或者《C:BEAN》等方式都可以
满意请采纳。追问
我后台是struts2 我就是想能不能直接用struts2直接遍历,不用js
追答可以 直接把json对象放到form里就可以。
参考技术A 请求时后台代码(对json进行赋值)JSONObject json = new JSONObject(); //json对象
JSONArray array = new JSONArray();//json数组
JSONObject jsonarticlecomment = null; //数组中需要放的对象
.....(这里我省略了用querycomment这个数组的获得过程)
Iterator iter = querycomment.iterate();-------iter是你需要遍历的对象组,这里从数据库取出来的
while (iter.hasNext())
jsonarticlecomment = new JSONObject();
jsonarticlecomment.put("id", "1"); //分别对这个数组中的对象进行赋值
array.add(jsonarticlecomment); //添加到jsonarray中
json.put("objarray", array); //把json数组保存到json对象中
PrintWriter pw = response.getWriter();
pw.print(json.toString()); //把json对象字符串化
pw.close();
取json中的数据(jquery请求)
var uri = "/comment/article.do?method=selArticlecomment";
var parameter = articlesrc:articlesrc,pages:pages; (参数)
var type = "json";
$.post(uri,parameter,function(data,textStatus)
var objarray= data.objarray; //返回的数据数组
for(var i = 0;i<objarray.length;i++)
alert(obj[i].id); //这个就是你存在对象数组中的的对象的字段值啦
,type);追问
但是我想用struts2标签取值 可以做到吗
追答那就把json对象传不以字符串形式返回,直接放到session中或者request返回也可以啊!
参考技术B 通过 JSONObject类就可以了首先 你把这几个包 下下来 放到你项目。如果有就不要下了:
1.commons-lang.jar
2.commons-beanutils.jar
3.commons-collections.jar
4.commons-logging.jar
5.ezmorph.jar
6.json-lib-2.2.2-jdk15.jar
像你这种是数据形式 就通过 JSONArray 如:
JSONArray datasJson = JSONArray.fromObject(datas);最好把datas toString 一下 参考技术C json
是一个特殊的集合对象,后台new出一个json对象,赋值,把这个对象送给前台,前台解析就可以了 参考技术D var arr = eval('('+jsol+')')//arr是个数组。这样你就可以for循环就进行遍历了
以上是关于在jsp页面怎么接收json字符串,然后怎么把json字符串转换成对象,再之怎么遍历json对象?的主要内容,如果未能解决你的问题,请参考以下文章
怎么用jsp生成json格式数据,然后用js又怎样读取其数据?
后台有两个List都转换为json格式数据返回给前台JSP页面 页面上怎么区分开这两个List的数据