`
阅读更多

 

     json和xml 两者流程相似,只不过数据格式不同

    web端

   Servlet

package com.lin.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.lin.pojo.News;
import com.lin.service.impl.VideoNewsService;
import com.lin.service.impl.VideoNewsServiceBean;

 
public class ListServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
 
	private VideoNewsService service=new VideoNewsServiceBean();
	
    public ListServlet() {
        // TODO Auto-generated constructor stub
    }
 
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.doPost(request, response);
	}

	 
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		 List<News> videos=service.getLastNews();
		 String format=request.getParameter("format");
		 
		 if("json".equals(format)){
			 System.out.println("dadawdfafghrh   "+format);

 			 StringBuilder builder=new StringBuilder();
			 builder.append('[');
			 for(News news:videos){
				 builder.append('{');
				 builder.append("id:").append(news.getId()).append(',');
				 builder.append("title:\"").append(news.getTitle()).append("\",");
				 builder.append("timelength:\"").append(news.getTimelength()).append("\"");
				 
				 builder.append("},");
			 }
			 builder.deleteCharAt(builder.length()-1);
			 builder.append(']');
			 request.setAttribute("json", builder.toString());
		     request.getRequestDispatcher("/WEB-INF/page/jsonvideoNews.jsp").forward(request, response);
}
		 		 }
	    
	}

}

 

jsp

<%@ page language="java" contentType="text/plain; charset=UTF-8" pageEncoding="UTF-8"%>${json}
 

 可以发现,在服务器端json格式的构建更多的是在Servlet里实现的,因为涉及了很多字符串的操作。而xml格式的构建可以在jsp里轻松的完成。

 

 

android端

 

 

public static List<News> getJSONLastNews() {
		
		String path="http://192.168.189.1:8080/videonews/ListServlet?format=json";
		try{
			URL url=new URL(path);
			HttpURLConnection conn=(HttpURLConnection) url.openConnection();
			conn.setConnectTimeout(5000);
			conn.setRequestMethod("GET");
			if(conn.getResponseCode()==200){
				InputStream inStream=conn.getInputStream();
				return parseJSON(inStream);
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		return null;
	}
/*
 * json的解析有java自带的解析器
 */
     public static List<News> parseJSON(InputStream inStream) throws Exception{
  		List<News> newses=new ArrayList<News>();

    	 byte[] data=StreamTools.read(inStream);
    	String json=new String(data);//chi构造器默认为utf
         JSONArray array=new JSONArray(json);//json数组
         for(int i=0;i<array.length();i++){
        	JSONObject object= array.getJSONObject(i);
        	News news=new News(object.getInt("id"),
                	object.getString("title"),
                	object.getString("timelength"));
        	newses.add(news);
         }
        return newses;
     }

 

      可以看到json解析时,在构造器里传入了一个字符串。

引入了工具包的一个方法,把流以字节的方式存到数组里。得到字符串。然后在对JSONArray解析。这是和xml解析的不同。

而xml解析是直接对流进行处理的

 

 

package com.lin.utils;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;

public class StreamTools {
/*
 * 读取流中的数据
 * 
 * */
	public static byte[] read(InputStream inStream) throws Exception{
		
		byte[] buffer=new byte[1024];
		
		ByteArrayOutputStream stream=new ByteArrayOutputStream();
		
		int len=0;
		while((len=inStream.read(buffer))!=-1){
			stream.write(buffer,0,len);
		}
		inStream.close();
		return stream.toByteArray();
	}
	
}

 

 

 

  • 大小: 11.7 KB
分享到:
评论

相关推荐

    C#像java一样优雅的解析JSON数据

    C#的一个解析JSON的工具类,像java一样优雅的解析JSON数据,包含有JSONObject和JSONArray对象。 JSONObject json = new JSONObject(); json.Put("sex", "男"); json.Put("age", 123); json.Put("name", "张三"); ...

    ajax 解析json数据

    在AJAX中解析JSON数据是常见的操作,尤其在前后端交互时。本篇将详细讲解两种AJAX解析JSON数据的方法,并提供示例代码。 方法一:使用`XMLHttpRequest`对象 在JavaScript中,我们可以使用内置的`XMLHttpRequest`...

    用jquery解析JSON数据的方法

    用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里...

    用jquery解析JSON数据的方法20110227

    在JavaScript和jQuery中,解析JSON数据是常见的任务,特别是在与服务器进行异步通信时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。在jQuery中...

    PW_JSON_dll+Demo(Vb.net解析Json数据的类库和demo)

    "Vb.net解析Json数据的类库"强调了这个工具的核心功能,即它是一个专门针对JSON格式的数据解析工具,适用于Visual Basic .NET编程语言。 描述中提到的"ObjectToString"和"StringToObject"是类库中的关键方法。`...

    Qt post请求发送和解析json数据完整示例,有完整的设置框架,可以发送和解析多个post请求

    // 解析JSON数据 QByteArray jsonData = reply-&gt;readAll(); QJsonDocument doc = QJsonDocument::fromJson(jsonData); if (doc.isNull()) { qDebug() &lt;&lt; "Invalid JSON data"; } else { QJsonObject ...

    Android解析Json数据的PPT和源码

    这个资料包包含了一个关于Android解析JSON数据的PPT和源码,可以帮助开发者深入理解和实践Android中如何处理JSON数据。 首先,我们要理解JSON的基本结构。JSON由键值对组成,键用引号括起来,后跟冒号,值可以是...

    纯pb代码编写的解析json数据,含生成、格式化等

    标题中的“纯pb代码编写的解析json数据,含生成、格式化等”指的是使用PowerBuilder(简称PB)这种编程语言,完全不依赖其他外部库,实现了JSON数据的解析、生成和格式化的功能。PB是一种面向对象的编程工具,主要...

    JAVA在线接收解析JSON数据

    JAVA在线接收解析JSON数据,引用的JSON类为 net.sf.json.JSONArray; net.sf.json.JSONObject;

    kettle解析json串

    通过以上步骤,我们可以在Kettle中有效地解析JSON数据,并将其写入数据库中。这不仅可以提高数据处理的效率,还可以确保数据的一致性和准确性。此外,使用Java库如`JSON Simple`可以更加灵活地处理各种类型的JSON...

    Gson解析json数据

    在本文中,我们将深入探讨如何使用Gson解析JSON数据,包括处理简单JSON和复杂的JSON结构。 首先,我们要了解JSON的基本概念。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,...

    cJson c语言解析json数据

    在C语言环境中,处理JSON数据时,cJson提供了一个简单而高效的解决方案。它允许开发者轻松地将JSON字符串解析为C结构体,同时也支持将C结构体转换为JSON格式的字符串。 ### JSON基础 JSON(JavaScript Object ...

    Android:实验项目:解析JSON数据实现天气预报显示

    使用解析JSON文件获取天气预报信息,并将不同城市的天气信息显示在主界面中,应用程序运行时界面如图1所示。单击其他城市按钮时,将显示相应城市对应的天气信息,如图2所示4.在模块对应的包名下创建JSON数据对应的...

    Android Studio下使用Google Gson解析Json数据示例

    本篇文章将详细介绍如何在Android Studio环境下使用Google Gson解析Json数据。 首先,我们需要在项目中引入Gson库。打开build.gradle模块文件,并在dependencies块中添加以下依赖: ```groovy dependencies { ...

    C++解析JSON数据

    VC++要使用JSON来解析数据,这个源码工程进行编译链接就可以得到一个静态链接库json.lib,只需要将这个lib文件拷贝到你的工程目录下,并将\include\json复制到工程目录下,然后将这些头文件加到工程中去就可以了。...

    C#解析Json数据(.html)

    本文将详细介绍如何在C#中解析JSON数据。 首先,C#提供了多种库来解析和序列化JSON数据,其中最常用的是Newtonsoft.Json,也被称为Json.NET。Json.NET是.NET平台上功能强大的JSON库,支持.NET Framework、.NET Core...

    Android_JSON数据解析

    本篇将详细讲解如何在Android应用中解析JSON数据,主要涉及以下几个方面: 1. JSON基本结构 JSON由两种基本结构构成:对象(Object)和数组(Array)。对象是以花括号 `{}` 包围的键值对集合,键用双引号括起,如`...

    jquery解析JSON数据的方法.docx

    在JavaScript和jQuery中,解析JSON数据是常见的任务,特别是在与服务器进行异步通信时。JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人和机器都能容易地读取和写入数据。当jQuery从服务器...

    Delphi解析json数据

    Delphi解析json数据。参考本方法可以用Delphi直接解析json数据,以弥补Delphi不能直接解析json数据的问题。

    json_cpp c++解析json数据的包

    本篇文章将深入探讨如何使用json_cpp这个C++库来解析JSON数据,以及提供的sample实例。 json_cpp是一个开源的C++库,它允许开发者方便地读取、写入和操作JSON数据。该库遵循C++11标准,并提供了简单易用的API,使得...

Global site tag (gtag.js) - Google Analytics