最近需要做一个通过第三方系统url返回的json内容,展示位门户首页新闻图片轮播的控件,整理代码如下,备查
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.JSONTokener;
//省略
@ResponseBody
@RequestMapping(params = "method=initpic")
public String initpic(HttpServletRequest request, HttpServletResponse response) {
final String NULL_IMAGE_PATH = "http://www.baidu.com/img/bd_logo1.png";
String result="";
StringBuffer html = new StringBuffer();
BufferedReader reader = null;
try{
String orgurl = request.getParameter("url");
URL connect = new URL(orgurl.toString());
URLConnection connection = connect.openConnection();
connection.connect();
reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8"));
String line;//循环读取
while ((line = reader.readLine()) != null) {
result += line;
}
if(!result.equals("")){
JsonConfig jsonConfig = new JsonConfig();
Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("result", String.class);
classMap.put("Page", Integer.class);
classMap.put("Pages", Integer.class);
classMap.put("Total", Integer.class);
classMap.put("Pagesize", Integer.class);
classMap.put("Items", HashMap.class);
jsonConfig.setClassMap(classMap);
jsonConfig.setRootClass(HashMap.class);
JSONTokener jt = new JSONTokener(result);
Object obj = jt.nextValue(jsonConfig);
JSONObject ja = JSONObject.fromObject(obj);
Map<String, List<Map>> map = (Map<String, List<Map>>) JSONObject.toBean(ja, jsonConfig);
List itemlist = map.get("Items");
html.append("<div style=\"width:500px;margin:0px auto;\">")
.append("<div class=\"roll-news-keleyi-com\">").append("<div class=\"roll-news-image\">");
for (int i = 0; i < itemlist.size(); i++) {
Map<String,Object> imgmap = (Map<String, Object>) itemlist.get(i);
html.append("<img src=\"");
if(imgmap.get("thumb")!=null && !"".equals(imgmap.get("thumb").toString())){
html.append(imgmap.get("thumb"));
}else{
html.append(NULL_IMAGE_PATH);
}
if(i!=0){
html.append("\" style=\"display:none\" >");
}else{
html.append("\">");
}
}
html.append("</div>");
html.append("<div class=\"roll-news-index\">");
html.append("<ul>");
for (int i = 0; i < itemlist.size(); i++) {
html.append("<li");
if(i == 0){
html.append(" class=\"roll-news-index-hover\"");
}
html.append(">").append(i+1).append("</li>");
}
html.append("</ul>");
html.append("</div>");
html.append("<div class=\"roll-news-title\">");
for (int i = 0; i < itemlist.size(); i++) {
Map<String,Object> imgmap = (Map<String, Object>) itemlist.get(i);
html.append("<a href=\"").append(imgmap.get("thumb"));
html.append("\" ");
if(i!=0){
html.append("style=\"display:none\"");
}
html.append(" >");
html.append(imgmap.get("title"));
html.append("</a>");
}
html.append("</div></div></div>");
System.out.println(html.toString());
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(reader!=null){//关闭流
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return html.toString();
}
页面
<%@page import="java.util.ListResourceBundle"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<HEAD>
<TITLE> </TITLE>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="res/js/json2.js" type="text/javascript" charset="UTF-8"></script>
<script src="res/js/jquery-1.8.0.min.js" type="text/javascript" charset="UTF-8"></script>
<style type="text/css">
* {
padding:0px;
margin:0px;
}
.roll-news-keleyi-com {
width:480px;
height:300px;
border:solid 1px #c1c1c1;
}
.roll-news-index-hover {
background-color:white;
}
.roll-news-image img {
width:480px;
height:300px;
}
.roll-news-index {
position:relative;
top:-50px;
margin-right:5px;
float:right;
}
.roll-news-index {
}
.roll-news-index li {
list-style:none;
float:left;
font-size:12px;
font-weight:600;
width:18px;
height:16px;
line-height:16px;
cursor:pointer;
margin:0 3px;
background-image:url(opacity_50.png);
text-align:center;
}
.roll-news-title {
position:relative;
top:-25px;
padding-left:10px;
height:22px;
line-height:20px;
background:url(opacity_50.png);
}
.roll-news-title a {
font-size:12px;
text-decoration:none;
color:white;
background-color:gray
}
.roll-news-title a:hover {
color:red;
}
</style>
</HEAD>
<body>
<div id="imgdiv">
</div>
</body>
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type : "post",
url : "login.go?method=initpic&url=http://www.xinhuamed.com.cn/getnews.aspx?action=list&page=1&pagesize=10",
contentType : "application/text; charset=utf-8",
success : function(data) {
document.getElementById("imgdiv").innerHTML=data;
},
error : function(msg) {
}
});
setTimeout(function(){
var index = 0;
var slideFlag = true;
var length = $(".roll-news-image img").length;
function showImg(i) {
$(".roll-news-image img")
.eq(i).stop(true, true).fadeIn(800)
.siblings("img").hide();
$(".roll-news-index li").removeClass("roll-news-index-hover");
$(".roll-news-index li").eq(i).addClass("roll-news-index-hover");
$(".roll-news-title a")
.eq(i).stop(true, true).fadeIn(800)
.siblings("a").hide();
}
showImg(index);
$(".roll-news-index li").click(function () {
index = $(".roll-news-index li").index(this);
showImg(index);
slideFlag = false;
});
function autoSlide() {
setInterval(function () {
if (slideFlag) {
showImg((index + 1) % length);
index = (index + 1) % length;
}
slideFlag = true;
}, 3000);
}
autoSlide();
},500);
});
</script>
</html>
分享到:
相关推荐
json转换json schema
前台请求后台通常需要JSON转换,所以调用自定以的类去转换很方便,转换类也是通过反射的机制实现的
Delphi_JSON delphi7解析JSON控件,新测可以用。。。。。
uni-app、微信小程序 富文本内容利用html2json转换成对应类似控件 rich-text 对应的数组资源格式,进行富文本文件的展示。
Newtonsoft.Json支持各种json转换!
JSON转换为JAVA对象及日期格式转换处理 -
使用JQuery实现从JSON对象转换为form提交数据
LabVIEW数据json互相转换,例子的类型含有簇,数据,字符串已经int
java 通过发送json,post请求,返回json数据的方法 java 通过发送json,post请求,返回json数据的方法
一个用于将JSON数据转换为Table的JavaScript库
json格式与java类对象相互转换。json格式转换成java类对象,List,Map。类对象转换成json。
本资源提供了一个基于protobuf反射特性的pb结构与json相互转换的实例,该实例程序主要有两个核心函数myMessage2Json、myJson2Message。前者的作用是将pb结构转换成对应的json,后者是将json转换成对应的pb结构体。...
C#json转换类,list转json,对象转Json,对象集合转Json,DataSet转换为Json,Datatable转换为Json,DataReader转换为Json
4. 对象转换为Json 5. 对象集合转换Json 6. 普通集合转换Json 7. DataSet转换为Json 8. Datatable转换为Json 9. DataReader转换为Json 10. 解析JSON字符串生成对象实体 11. 解析JSON数组生成对象实体集合 12. 反序列...
将json转换为javebean的工具,封装jsonschema2pojo,用户可以修改配置文件json2Beans.json,然后运行Json2JavaBean2.bat直接生成对应类。 能够批量转换json为bean,直接拷贝到项目中使用。 提醒: 需要提前安装java...
Delphi_JSON控件及实例 Delphi_JSON控件及实例
android发送json数据
将form表单内容转换为json将form表单内容转换为json将form表单内容转换为json
一个自制的json转换jar 直接调用JsonFactory.toJson()方法可将javaBean转换成json