android客户端+JAVA WEB服务器实现json数据解析

    首先,项目中使用javaweb作为后台服务器,源码地址:服务器和客户端源码地址
接下来进入正题。
   
   一、java web服务器
        
         这里就多说了,不太了解j2ee的请查阅相关书籍。
      
         项目结构如下:
       
        News类定义了之后解析的JSON对象的内容;
        NewsServer则是定义了一个获取最新新闻News的接口;
        NewsServer则是实现了这个接口,定义了获取最新新闻的方法;
        NewsListServlet则是一个实现客户端get和post请求的servlet,用于实现网络请求时的业务逻辑处理,主要返回含有News内容的json字符串;
        jsonnewslist.jsp是一个jsp文件用于测试服务器是否正常运行。
      
      服务器部分就不啰嗦了,直接贴代码和截图
      
  (1)News类
           
 public class News {
	private Integer id;
	private String title;
	private Integer timelength;
	public News(Integer id, String title, Integer timelength) {
		this.id = id;
		this.title = title;
		this.timelength = timelength;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public Integer getTimelength() {
		return timelength;
	}
	public void setTimelength(Integer timelength) {
		this.timelength = timelength;
	}
}
         (2)NewsServer接口
      
public interface NewsServer {
	/*
	 * 获取最新的新闻News
	 */
	public java.util.List<News> getLastNews();

}
          (3)NewsServerBean类 
import java.util.ArrayList;
import java.util.List;

public class NewsServerBean implements NewsServer {

	@Override
	public List<News> getLastNews() {
		// TODO Auto-generated method stub
		List<News> news = new ArrayList<>();
		news.add(new News(10, "吕文健", 20));
		news.add(new News(45, "李昱喜", 10));
		news.add(new News(89, "android is amazing", 50));
		return news;
	}

}
        (4)NewsListServlet类
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet(name="newslist",
            urlPatterns={"/newslist"}
		)//配置Servlet
public class NewsListServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	NewsServerBean serverbean =new NewsServerBean();

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
	   doPost(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		req.setCharacterEncoding("GBK");
		resp.setCharacterEncoding("GBK");//这里设置成gbk防止手机端显示乱码,之前设置为utf-8总是乱码
		List<News> news = serverbean.getLastNews();
		StringBuilder json = new StringBuilder();
		json.append("[");
		for(News news2:news){
			json.append('{').append("\"id\":").append(news2.getId()).append(",");                      
            json.append("\"title\":").append("\""+news2.getTitle()+"\"").append(",");
            json.append("\"timelength\":").append(news2.getTimelength());
            json.append('}').append(",");
		}
		json.deleteCharAt(json.length()-1);//?
		json.append("]");
        req.setAttribute("json", json.toString());
        req.getRequestDispatcher("/jsonnewslist.jsp").forward(req, resp);
	}
}

    (5)jsonnewslist.jsp(在服务端测试服务器是否布置成功)
<%@ page language="java" contentType="text/plain; charset=GBK"
    pageEncoding="GBK"%>
   ${json}
              (6)服务器运行结果

    


      OK,运行成功,服务器解决了,楼主把它打包成war,放在阿里云服务器上,省去了用电脑做服务器的各种麻烦。 接下来进入正题,客户端解析Json


二、android客户端
  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值