解析json格式数据,要求有点难。。。。。 本帖最后由 u010212112 于 2013-04-15 17:49:16 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在js里面转换成需要的值, 可以使用jquery var data2 = eval("(" + sr + ")"); var jsonstring2 = data2.obj; var tempids = ""; for (i in jsonstring2) { if (tempids.length < 1) { tempids = jsonstring2[i].titlename; jQuery("#tempids").append(tempids); jQuery("#tempids2").append(tempids); } jQuery("#temptitles").append( "<h2><a href='" + jsonstring2[i].tsid + "'>" + jsonstring2[i].tsname + "</a></h2><ul><li><a href='" + jsonstring2[i].tssid + "'>" + jsonstring2[i].tssname + "</a></li></ul>+"); } });得到的结果自动注射器 * 比杨单通道注射泵BYZ-810+自动注射器 * 史密斯输液器+血压器 * 比杨单通道注射泵BYZ-810+血压器 * 比杨单通道注射泵BYZ-810+血糖仪 * 比杨单通道注射泵BYZ-810+血糖仪 * 比杨单通道注射泵BYZ-810+我需要的是自动注射器 * 比杨单通道注射泵BYZ-810 * 史密斯输液器+血压器 * 比杨单通道注射泵BYZ-810 * 比杨单通道注射泵BYZ-810+血糖仪 * 比杨单通道注射泵BYZ-810 * 比杨单通道注射泵BYZ-810+ 你在append的时候先判断改tsname在<h2>标签中是否已经存在 存在则将该tssname apend到该tsname下面 否则则新创建一个<h2>标签 一个循环,依次取tssid和tssname,并按格式输出一样,很简单 格式化一下吧{ "act" : "{\"act\":\"inittemplate\",\"titleid\":\"2\"}", "newName" : null, "obj" : [ { "titleid" : 2, "titlename" : "医疗产品", "tsid" : 1, "tsname" : "自动注射器", "tssid" : 1, "tssimg" : "/cy/images/byz01.jpg", "tssname" : "比杨单通道注射泵BYZ-810" }, { "titleid" : 2, "titlename" : "医疗产品", "tsid" : 1, "tsname" : "自动注射器", "tssid" : 2, "tssimg" : "/cy/images/byz01.jpg", "tssname" : "史密斯输液器" }, { "titleid" : 2, "titlename" : "医疗产品", "tsid" : 2, "tsname" : "血压器", "tssid" : 3, "tssimg" : "/cy/images/byz01.jpg", "tssname" : "比杨单通道注射泵BYZ-810" }, { "titleid" : 2, "titlename" : "医疗产品", "tsid" : 2, "tsname" : "血压器", "tssid" : 4, "tssimg" : "/cy/images/byz01.jpg", "tssname" : "比杨单通道注射泵BYZ-810" }, { "titleid" : 2, "titlename" : "医疗产品", "tsid" : 3, "tsname" : "血糖仪", "tssid" : 5, "tssimg" : "/cy/images/byz01.jpg", "tssname" : "比杨单通道注射泵BYZ-810" }, { "titleid" : 2, "titlename" : "医疗产品", "tsid" : 3, "tsname" : "血糖仪", "tssid" : 6, "tssimg" : "/cy/images/byz01.jpg", "tssname" : "比杨单通道注射泵BYZ-810" } ]} 我想问下楼主,你这是前台数据,干嘛还要这样取如果是从后台传过来的数据的话,就用ajax的Json传值,这样好解析些你可以像如下方法取得你需要的几个值var obj = msg.obj;for(int i=0;i<obj.length,i++){var titleid = obj[i].titleid;var titlename = obj[i].titleid;...} 效果图代码 <script type="text/javascript"> $(function(){ //$('#tt').tree({ // url:'EnergyAction!doTree.action' //}); var str={"act":"{\"act\":\"inittemplate\",\"titleid\":\"2\"}","newName":null,"obj":[{"titleid":2,"titlename":"医疗产品","tsid":1,"tsname":"自动注射器","tssid":1,"tssimg":"\/cy\/images\/byz01.jpg","tssname":"比杨单通道注射泵BYZ-810"},{"titleid":2,"titlename":"医疗产品","tsid":1,"tsname":"自动注射器","tssid":2,"tssimg":"\/cy\/images\/byz01.jpg","tssname":"史密斯输液器"},{"titleid":2,"titlename":"医疗产品","tsid":2,"tsname":"血压器","tssid":3,"tssimg":"\/cy\/images\/byz01.jpg","tssname":"比杨单通道注射泵BYZ-810"},{"titleid":2,"titlename":"医疗产品","tsid":2,"tsname":"血压器","tssid":4,"tssimg":"\/cy\/images\/byz01.jpg","tssname":"比杨单通道注射泵BYZ-810"},{"titleid":2,"titlename":"医疗产品","tsid":3,"tsname":"血糖仪","tssid":5,"tssimg":"\/cy\/images\/byz01.jpg","tssname":"比杨单通道注射泵BYZ-810"},{"titleid":2,"titlename":"医疗产品","tsid":3,"tsname":"血糖仪","tssid":6,"tssimg":"\/cy\/images\/byz01.jpg","tssname":"比杨单通道注射泵BYZ-810"}]}; var jsonstring2 = str.obj; var tempids = ""; for (var i=0;i<jsonstring2.length;i++) { var as = $('h2 a');// 获取h2标签对象 var isExist = 0; // 标识tsname是否已经存在 $.each(as,function(j,value){ var v = $(this).html(); if(v == jsonstring2[i].tsname){//存在 isExist = 1; $(this).parent().next('ul').append("<li><a href='"+ jsonstring2[i].tssid + "'>" + jsonstring2[i].tssname + "</a></li>"); } }); if(isExist == 0){//不存在 jQuery("#temptitles").append( "<h2><a href='" + jsonstring2[i].tsid + "'>" + jsonstring2[i].tsname + "</a></h2><ul><li><a href='" + jsonstring2[i].tssid + "'>" + jsonstring2[i].tssname + "</a></li></ul>+"); } } }); </script> </head> <body><%-- <ul id="tt" class="easyui-tree"></ul> <div id="tempids"></div><div id="tempids2"></div>--%><div id="temptitles"></div> </body> 求助!!JSP错误... jsp连接access数据库报错问题求助 高手进来!!!如何实现这类网站的??先谢谢大家了 我的图片怎么都是以二进制的方式打开的? 高手帮忙,jsp如何实现打印 IO 问 :struts2 在一个jsp中点击一个href链接跳到一个action 招聘软件开发兼职人员----在校大学生优先 请教各位大侠:如何在链接里提交页面? 求大神帮忙!一上午没解决。。不知如何是好 我喜欢Object o = new XXX().yyy(); 关于提取kindeditor编辑器中的文字内容
var jsonstring2 = data2.obj;
var tempids = "";
for (i in jsonstring2) {
if (tempids.length < 1) {
tempids = jsonstring2[i].titlename;
jQuery("#tempids").append(tempids);
jQuery("#tempids2").append(tempids);
}
jQuery("#temptitles").append(
"<h2><a href='" + jsonstring2[i].tsid + "'>"
+ jsonstring2[i].tsname
+ "</a></h2><ul><li><a href='"
+ jsonstring2[i].tssid + "'>"
+ jsonstring2[i].tssname
+ "</a></li></ul>+"); }
});得到的结果自动注射器 * 比杨单通道注射泵BYZ-810+
自动注射器 * 史密斯输液器+
血压器 * 比杨单通道注射泵BYZ-810+
血压器 * 比杨单通道注射泵BYZ-810+
血糖仪 * 比杨单通道注射泵BYZ-810+
血糖仪 * 比杨单通道注射泵BYZ-810+
我需要的是自动注射器 * 比杨单通道注射泵BYZ-810 * 史密斯输液器+
血压器 * 比杨单通道注射泵BYZ-810 * 比杨单通道注射泵BYZ-810+
血糖仪 * 比杨单通道注射泵BYZ-810 * 比杨单通道注射泵BYZ-810+
否则则新创建一个<h2>标签
{ "act" : "{\"act\":\"inittemplate\",\"titleid\":\"2\"}",
"newName" : null,
"obj" : [ { "titleid" : 2,
"titlename" : "医疗产品",
"tsid" : 1,
"tsname" : "自动注射器",
"tssid" : 1,
"tssimg" : "/cy/images/byz01.jpg",
"tssname" : "比杨单通道注射泵BYZ-810"
},
{ "titleid" : 2,
"titlename" : "医疗产品",
"tsid" : 1,
"tsname" : "自动注射器",
"tssid" : 2,
"tssimg" : "/cy/images/byz01.jpg",
"tssname" : "史密斯输液器"
},
{ "titleid" : 2,
"titlename" : "医疗产品",
"tsid" : 2,
"tsname" : "血压器",
"tssid" : 3,
"tssimg" : "/cy/images/byz01.jpg",
"tssname" : "比杨单通道注射泵BYZ-810"
},
{ "titleid" : 2,
"titlename" : "医疗产品",
"tsid" : 2,
"tsname" : "血压器",
"tssid" : 4,
"tssimg" : "/cy/images/byz01.jpg",
"tssname" : "比杨单通道注射泵BYZ-810"
},
{ "titleid" : 2,
"titlename" : "医疗产品",
"tsid" : 3,
"tsname" : "血糖仪",
"tssid" : 5,
"tssimg" : "/cy/images/byz01.jpg",
"tssname" : "比杨单通道注射泵BYZ-810"
},
{ "titleid" : 2,
"titlename" : "医疗产品",
"tsid" : 3,
"tsname" : "血糖仪",
"tssid" : 6,
"tssimg" : "/cy/images/byz01.jpg",
"tssname" : "比杨单通道注射泵BYZ-810"
}
]
}
如果是从后台传过来的数据的话,就用ajax的Json传值,这样好解析些
你可以像如下方法取得你需要的几个值var obj = msg.obj;
for(int i=0;i<obj.length,i++){
var titleid = obj[i].titleid;
var titlename = obj[i].titleid;
...
}
$(function(){
//$('#tt').tree({
// url:'EnergyAction!doTree.action'
//});
var str={"act":"{\"act\":\"inittemplate\",\"titleid\":\"2\"}","newName":null,"obj":[{"titleid":2,"titlename":"医疗产品","tsid":1,"tsname":"自动注射器","tssid":1,"tssimg":"\/cy\/images\/byz01.jpg","tssname":"比杨单通道注射泵BYZ-810"},{"titleid":2,"titlename":"医疗产品","tsid":1,"tsname":"自动注射器","tssid":2,"tssimg":"\/cy\/images\/byz01.jpg","tssname":"史密斯输液器"},{"titleid":2,"titlename":"医疗产品","tsid":2,"tsname":"血压器","tssid":3,"tssimg":"\/cy\/images\/byz01.jpg","tssname":"比杨单通道注射泵BYZ-810"},{"titleid":2,"titlename":"医疗产品","tsid":2,"tsname":"血压器","tssid":4,"tssimg":"\/cy\/images\/byz01.jpg","tssname":"比杨单通道注射泵BYZ-810"},{"titleid":2,"titlename":"医疗产品","tsid":3,"tsname":"血糖仪","tssid":5,"tssimg":"\/cy\/images\/byz01.jpg","tssname":"比杨单通道注射泵BYZ-810"},{"titleid":2,"titlename":"医疗产品","tsid":3,"tsname":"血糖仪","tssid":6,"tssimg":"\/cy\/images\/byz01.jpg","tssname":"比杨单通道注射泵BYZ-810"}]}; var jsonstring2 = str.obj;
var tempids = "";
for (var i=0;i<jsonstring2.length;i++) {
var as = $('h2 a');// 获取h2标签对象
var isExist = 0; // 标识tsname是否已经存在
$.each(as,function(j,value){
var v = $(this).html();
if(v == jsonstring2[i].tsname){//存在
isExist = 1;
$(this).parent().next('ul').append("<li><a href='"+ jsonstring2[i].tssid + "'>" + jsonstring2[i].tssname + "</a></li>");
}
}); if(isExist == 0){//不存在
jQuery("#temptitles").append(
"<h2><a href='" + jsonstring2[i].tsid + "'>"
+ jsonstring2[i].tsname
+ "</a></h2><ul><li><a href='"
+ jsonstring2[i].tssid + "'>"
+ jsonstring2[i].tssname
+ "</a></li></ul>+");
}
}
});
</script>
</head>
<body><%--
<ul id="tt" class="easyui-tree"></ul>
<div id="tempids"></div>
<div id="tempids2"></div>
--%><div id="temptitles"></div>
</body>