`

JSON实例应用

    博客分类:
  • JSON
阅读更多

JSON实际就是一种数据格式,传递数据,特别的地方在于:JSON的数据格式可以直接构成JavaScript中的一个对象,因些可以在JavaScript很易容访问到它的数据。(个人的见解,关于JSON的其它资料可以去google一下)

下面就应用一下JSON:

使用JSON需要一些文件:将js对象转化成JSON的数据格式的JS如:json.js

                                   将Java对象转化成JSON的数据格式的jar包:json-lib-2.3-jdk15.jar等可以在下面的附件中获得

我在我的工程中引入了这个文件(也可以不用这个文件,那么你需要自己在js或class中拼成JSON格式的数据)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>JSON学习</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<script type="text/javascript" src="js/json.js"></script>
  </head>
  
  <script language="javascript">
  	var xmlHttp;
  	function createXMLHttpRequest() {  
    	if (window.ActiveXObject) {  
        	xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");  
     	}   
     	else if (window.XMLHttpRequest) {  
        	xmlHttp = new XMLHttpRequest();  
     	}  
 	}
 	function doJSON(){
 		var car = getCarObject();
 		//将JS对象转化成JSON格式的Text
 		var carAsJSON = JSON.stringify(car);
 		alert(carAsJSON);
 		var url = "JsonTest1?timeStamp="+new Date().getTime();
 		createXMLHttpRequest();
 		xmlHttp.open("POST", url, true);
 		xmlHttp.onreadystatechange = handleStateChange;
 		xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 		xmlHttp.send(carAsJSON);
 	}
 	//Ajax的回调方法
 	function handleStateChange(){
 		if(xmlHttp.readyState == 4){
 			if(xmlHttp.status == 200){
 				parseResults();
 			}
 		}
 	}
 	//具体的回调作动
 	function parseResults(){
 		var responseDiv = document.getElementById("serverResponse");
 		if(responseDiv.hasChildNodes()){
 			responseDiv.removeChild(responseDiv.childNodes[0]);
 		}
 		//xmlHttp.responseText是servlet中返回回来的JSON格式的数据,将它创建成一个js的node对象放到DIV中
 		var responseText = document.createTextNode(xmlHttp.responseText);
 		responseDiv.appendChild(responseText);
 		//将json格式的Text转化成JSON对象:用eval('('+response+')')
 		var resultJson = eval('('+xmlHttp.responseText+')');
 		alert(resultJson);
 		alert(resultJson.make);
 		alert(resultJson.model);
 		alert(resultJson.year);
 		alert(resultJson.color);
 	}
 	//JS中的一个对象
 	function Car(make,model,year,color){
 		this.make = make;
 		this.model = model;
 		this.year = year;
 		this.color = color;
 	}
 	//构成对象并返回
 	function getCarObject(){
		return new Car("Dodge", "Coronet R/T", 1968, "yellow");
 	}
  </script>
  
  <body>
  	<form action="#">  
    	<input type="button" value="Click here to send JSON data to the server" onclick="doJSON();"/>  
	</form>
	<h2>Server Response:</h2>
	<div id="serverResponse">
		
	</div>
  </body>
</html>

 在我的servlet中实现如下:

public class JsonTest1 extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 306348969081510518L;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String json = readJSONStringFromRequestBody(request);
		System.out.println("json = " + json);
                //将request中接收的字符串转化成json对java对象
		JSONObject jsonObject = JSONObject.fromObject(json);
		System.out.println("jsonObject = " + jsonObject.toString());
		System.out.println(jsonObject.getInt("year"));
		System.out.println(jsonObject.getString("make"));
		System.out.println(jsonObject.getString("model"));
		System.out.println(jsonObject.getString("color"));
		//设置返回的格式是text
		response.setContentType("text/plain");
		response.getWriter().print(jsonObject);
	}

	private String readJSONStringFromRequestBody(HttpServletRequest request) {
		StringBuffer json = new StringBuffer();
		String line = null;
		try {
			BufferedReader bufferRead = request.getReader();
			while ((line = bufferRead.readLine()) != null) {
				System.out.println("line = " + line);
				json.append(line);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return json.toString();
	}
}

 servlet的配置如下:

<servlet>
    <servlet-name>JsonTest1</servlet-name>
    <servlet-class>com.mengya.servlet.JsonTest1</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>JsonTest1</servlet-name>
    <url-pattern>/JsonTest1</url-pattern>
  </servlet-mapping>

 相于java对象与json之类的转化的一些测试如下(跟上面的实例无关):

public class JsonBean1 {
	private String col;

	private String row;

	private String value;

	public String getCol() {
		return col;
	}

	public void setCol(String col) {
		this.col = col;
	}

	public String getRow() {
		return row;
	}

	public void setRow(String row) {
		this.row = row;
	}

	public String getValue() {
		return value;
	}

	public void setValue(String value) {
		this.value = value;
	}
}
 
/**
 * 
 * @author 张明学
 * 
 */
public class JsonBanTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		boolean[] boolArray = new boolean[] { true, false, true };
		JSONArray jsonArray1 = JSONArray.fromObject(boolArray);
		System.out.println(jsonArray1);

		List list = new ArrayList();
		list.add("first");
		list.add("second");
		JSONArray jsonArray2 = JSONArray.fromObject(list);
		System.out.println(jsonArray2);

		JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']");
		System.out.println(jsonArray3);

		Map map = new HashedMap();
		map.put("name", "json");
		map.put("bool", Boolean.TRUE);
		map.put("int", new Integer(1));
		map.put("arr", new String[] { "a", "b" });
		map.put("func", "function(i){return this.arr[i]}");
		JSONObject json = JSONObject.fromObject(map);
		System.out.println(json);
		
		JsonBean1 jb = new JsonBean1();
		jb.setCol("col1");
		jb.setRow("row1");
		jb.setValue("123");
		JSONObject ja = JSONObject.fromObject(jb);
		System.out.println(ja.toString());
		
		List list2 = new ArrayList();
		JsonBean1 jb2 = new JsonBean1();
		jb2.setCol("col1");
		jb2.setRow("row1");
		jb2.setValue("123");
		list2.add(jb);
		list2.add(jb2);
		JSONArray jsonArray = JSONArray.fromObject(list2);
		System.out.println(jsonArray.toString());
		
		String jsonStr = "{name=\"json\",bool:true,int:1,double:2.2,func:function(a){ return a; },array:[1,2]}";
		JSONObject jsonObject = JSONObject.fromObject(jsonStr);
		System.out.println(jsonObject);
		System.out.println(jsonObject.get("name"));
		System.out.println(jsonObject.get("bool"));
		System.out.println(jsonObject.get("int"));
		System.out.println(jsonObject.get("double"));
		System.out.println(jsonObject.get("func"));
		System.out.println(jsonObject.get("array"));
	}
	
}
 

 

  • json_jar.rar (1.1 MB)
  • 描述: json的js和jar文件
  • 下载次数: 628
  • JSONStudy.rar (1.2 MB)
  • 描述: 我的应用实例
  • 下载次数: 727
7
0
分享到:
评论
2 楼 liuweihug 2014-05-10  
下面的文章比较全面。结合了一些开发经验。json的定义、标准格式及json字符串检验 http://www.suchso.com/projecteactual/json-biaozhu-zifuchuan-jiaoyan.html
1 楼 lcflongzhigu 2012-12-02  
[b][/b]
[/url][url][img][/img]
引用
[u][/u][i][/i][img][/img]
[flash=200,200][/flash][url][/url][img][/img]
引用
引用
[/b][b][b][/b][i][/i]
引用
引用
[/b][b][/u][u][u][/u]
引用
引用
[img][/img][flash=200,200][/flash]
引用
[/b][b][u][/u][/b][b][/b][b][i][/i][/url][url][flash=200,200][/flash]
[img][/img]

相关推荐

    .Net JQuery$.ajax Json实例应用【附带的源码】

    .Net JQuery$.ajax Json实例应用 有人在评论里面骂,这个不能用,现在把源码传上来,估计是没有引用System.Web.Extensions和System.Web.Extensions.Design这两个Dll

    ajax+json实例

    **Ajax+JSON 实例详解** 在现代Web开发中,AJAX(Asynchronous JavaScript and XML)技术已经成为提升用户体验的重要工具,它允许网页在不刷新整个页面的情况下与服务器进行数据交互。结合JSON(JavaScript Object ...

    JSON servlet实例 Ajax应用

    在这个"JSON Servlet实例 Ajax应用"中,我们将探讨如何使用Servlet与客户端进行JSON数据交互,并结合Ajax实现异步通信。 首先,了解JSON的基本结构至关重要。JSON由键值对组成,键必须是字符串,且用双引号包围,值...

    C#解析JSON实例.rar

    在提供的"C#解析JSON实例.rar"压缩包中,可能包含了一系列示例代码,演示了如何在C#环境中使用这两种方法处理JSON数据。通过学习这些实例,开发者可以更好地理解如何在实际项目中灵活运用JSON解析和生成技术。建议...

    asp输出json实例,json.asp

    总的来说,ASP生成JSON实例展示了服务器端如何处理和传输数据到客户端,这对于构建交互式的Web应用程序至关重要。`json.asp`和`daka.asp`的代码分析将提供更深入的理解,包括具体的函数实现、数据处理逻辑以及如何与...

    asp输出json对象实例

    在实际应用中,ASP生成JSON对象通常包括以下步骤: 1. 创建ASP变量,存储要转换为JSON的数据结构。 2. 使用自定义函数或者库将ASP变量转换为JSON字符串。 3. 设置HTTP响应头,指定内容类型为`application/json`。 4....

    json实例编程应用

    在Web应用程序开发中,JSON扮演着重要角色,尤其在前后端数据交互方面。Struts2.0、Spring和Hibernate是Java企业级开发中的三大框架,它们各自负责不同的职责:Struts2.0主要处理MVC(Model-View-Controller)架构中...

    json实例

    在"json实例"这个主题中,我们将深入探讨JSON的基本结构、语法以及如何在实际编程中使用JSON。 1. JSON的基本结构: JSON数据通常由键值对组成,键和值之间用冒号隔开,而各对键值对之间则用逗号分隔。键必须是...

    json实例练习题11111

    通过这些JSON实例练习题,你可以加深对JSON的理解,熟练掌握其语法和使用方法,从而更好地在实际项目中应用JSON。在练习过程中,你可能会遇到如何构造复杂的JSON结构、如何验证JSON数据的有效性以及如何在不同编程...

    简单json实例(源自百度文库)

    ### 知识点详解 #### 一、JSON与Java对象之间的转换 在本示例中,我们探讨了如何将Java对象转换为JSON格式,并通过一个...此外,还介绍了如何使用第三方库简化 JSON 处理的过程,这对于实际应用来说是非常重要的。

    Ajax、json实例学习代码

    1. 创建XMLHttpRequest对象:在现代浏览器中,我们可以直接通过`new XMLHttpRequest()`创建一个实例。 2. 配置请求:使用`open()`方法设置请求类型(GET或POST)、URL和是否异步执行。 3. 发送请求:调用`send()`...

    JSON 应用 实例

    ### JSON应用实例详解 #### 1. JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁高效的特点,在Web开发中得到广泛应用。相比于XML等其他数据交换格式,JSON更易于人类阅读和编写...

    AjaxJson 实例 AjaxJson

    实践是最好的老师,尝试创建自己的实例,不断调试和优化,这样你会更快地掌握 AjaxJson 的应用。 总的来说,AjaxJson 结合了 AJAX 的异步特性与 JSON 的数据交换优势,使得网页可以更加动态和响应式。对于初学者来...

    java操作json实例

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。在Java中,处理JSON的主要库有Jackson、Gson、org.json和json-simple等。本实例将重点介绍如何使用Java的...

    C++ JSON实例

    总的来说,C++ JSON实例提供了一个实践平台,让开发者了解如何在C++项目中有效地处理JSON数据。通过学习和使用提供的源代码,可以加深对JSON解析和序列化的理解,以及如何在VS2010环境中集成和使用第三方库。

    json实例源码90r1

    标题"json实例源码90r1"表明这是一个关于C#的JSON应用实例集合,可能包含了不同版本的.NET Framework(如2.0, 3.5, 4.0, 4.5)下的代码示例。 描述中的"VS编程非常实用"提示我们,这些示例是为Visual Studio(VS)...

    基于SSH框架的JSON实例

    这个基于SSH框架的JSON实例不仅教你如何在Java Web应用中使用JSON,还涵盖了SSH框架的综合运用,包括Struts2的请求处理、Spring的依赖注入和事务管理,以及Hibernate的数据操作。对初学者来说,这是一次很好的实践,...

    初学者 Json Demo 实例

    在这个“初学者 Json Demo 实例”中,我们将探讨如何使用JSON进行数据操作,特别关注它在实际应用中的基本用法。 1. JSON基本结构: JSON主要由对象和数组两种结构组成。对象以大括号{}包围,键值对以冒号分隔,...

    .Net C# Json接口读取实例

    在.NET框架中,C#语言提供了强大的支持来处理JSON数据,这在当今的Web应用程序开发中至关重要,因为JSON已经成为互联网上数据交换的标准格式。本文将深入探讨如何在C#中利用.NET库进行JSON接口的读取操作,并结合...

Global site tag (gtag.js) - Google Analytics