json数据请问怎么遍历
<%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+reques...
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
CompanyDao companyDao=new CompanyDaoImpl();
List<Company> companyList=companyDao.companyinformation();
JSONArray jsonlist=JSONArray.fromObject(companyList);
System.out.println(jsonlist);
%>
上面jsonlist可以获取JSON格式的数据 但是不知道在JS里要如何遍历?我的JS代码是
var zNodes =[
<%
for(Company company : jsonlist){
%>
{"id":<%=company.getId()%>, "pId":<%=company.getPid()%>, "name":"<%=company.getName()%>","p_order":<%=company.getP_order()%>},
<%}%>
];
提示错误说Type mismatch: cannot convert from element type Object to Company
应该是JSON格式的数据不能直接这样遍历 请问要怎么遍历这个JSON数据? 展开
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
CompanyDao companyDao=new CompanyDaoImpl();
List<Company> companyList=companyDao.companyinformation();
JSONArray jsonlist=JSONArray.fromObject(companyList);
System.out.println(jsonlist);
%>
上面jsonlist可以获取JSON格式的数据 但是不知道在JS里要如何遍历?我的JS代码是
var zNodes =[
<%
for(Company company : jsonlist){
%>
{"id":<%=company.getId()%>, "pId":<%=company.getPid()%>, "name":"<%=company.getName()%>","p_order":<%=company.getP_order()%>},
<%}%>
];
提示错误说Type mismatch: cannot convert from element type Object to Company
应该是JSON格式的数据不能直接这样遍历 请问要怎么遍历这个JSON数据? 展开
3个回答
展开全部
如果是js中遍历使用
var anObject = {one:1,two:2,three:3};//对json数组each
$.each(anObject,function(name,value) {
});
如果是Java代码直接用for循环就行了,说白了json也是数组的一种,json对象和json数组都可以
//遍历json数组
String json1 = "{data:[{name:'Wallace'},{name:'Grommit'}]}";
jsonObjSplit = new JSONObject(json1);
JSONArray ja = jsonObjSplit.getJSONArray("data");
for (int i = 0; i < ja.length(); i++) {JSONObject jo = (JSONObject) ja.get(i);System.out.println(jo.get("name"));}
//JSONObject遍历json对象
String json2 = "{name:'Wallace',age:15}";
jsonObj = new JSONObject(json2);
for (Iterator iter = jsonObj.keys(); iter.hasNext();) {String key = (String)iter.next();System.out.println(jsonObj .getString(Key));}
var anObject = {one:1,two:2,three:3};//对json数组each
$.each(anObject,function(name,value) {
});
如果是Java代码直接用for循环就行了,说白了json也是数组的一种,json对象和json数组都可以
//遍历json数组
String json1 = "{data:[{name:'Wallace'},{name:'Grommit'}]}";
jsonObjSplit = new JSONObject(json1);
JSONArray ja = jsonObjSplit.getJSONArray("data");
for (int i = 0; i < ja.length(); i++) {JSONObject jo = (JSONObject) ja.get(i);System.out.println(jo.get("name"));}
//JSONObject遍历json对象
String json2 = "{name:'Wallace',age:15}";
jsonObj = new JSONObject(json2);
for (Iterator iter = jsonObj.keys(); iter.hasNext();) {String key = (String)iter.next();System.out.println(jsonObj .getString(Key));}
展开全部
用
arrdata = jquery.parseJSON(jsonlist);
或者用
eval("arrdata = " + jsonlist + ";");
然后
for(i = 0 ;i < arrdata.length; i ++ ){
alert(arrdata[i].pId);
}
这样来访问数据了~~~
更多追问追答
追问
你这几步都是写JS里面的吗? 完全没有作用啊。而且我foreach循环里面的都是java的对象,不是JS里面创建的
追答
jsonlist是从后台返回的吗?我用php就是后台返回json_encode
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JSONArray类型的数据,遍历出来是JSONObject,你试试把Company换成JSONObject
追问
不行的啊 我要创建company对象来使用Company里的get方法
追答
那你当初就不要把它转换成JSONArray,你这个对象List companyList 可以直接遍历,为毛要转换成JSONArray。
你直接遍历companyList 呗,遍历出来的对象不就是Company对象了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询