`

json实例

    博客分类:
  • json
阅读更多
关于json的原理我不再说啦,可以访问我的blog http://fuchangle.iteye.com/blog/1535377,这篇主要看看json实际的应用,下面上代码

发送数据到servlet
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>JSONpage</title>
<script type="text/javascript">
	var xmlHttp;
	function createXMLHttpRequest() {  
    	if (window.ActiveXObject) {  //(window.ActiveXObject)的作用,用来判断浏览器是否支持ActiveX控件,如果支持ActiveX控件,我们可以利用var xml=new ActiveXObject("Microsoft.XMLHTTP")的形式来创建XMLHTTPRequest对象
        	xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");  
     	}   
     	else if (window.XMLHttpRequest) {  //而在IE7及非IE浏览器中可以利用var xml=new XMLHttpRequest()创建XMLHttpRequest对象
        	xmlHttp = new XMLHttpRequest();  
     	}  
 	}
	
	function doJSON(){
		var car = getCarObject();
		//将js对象转化成JSON对象的text
		var carAsJSON = JSON.stringify(car);
		alert(carAsJSON);
		var url = "JSONTest1?timpStamp="+ new Date().getTime();
		createXMLHttpRequest();
		xmlHttp.open("POST",url,true);
		xmlHttp.onreadystatechange = handleStateChange;
		xmlHttp.send(carAsJSON);
	}
	
	//Ajax的回调方法
	function handleStateChange(){
		if(xmlHttp.readyState == 4){ //相应内容解析完成,可以在客户端调用啦
			if(xmlHttp.status ==200){	//交易成功
				parseResults();
			}
		}
	}
	//具体的回调动作
	function parseResults(){
		var requestDiv = document.getElementById("serverResponse");
		if(requestDiv.hasChildNodes()){
			requestDiv.removeChild(requestDiv.childNodes[0]);
		}
		//xmlHttp.responseText是servlet中返回回来的JSON格式的数据,将它创建成一个js的node对象放到DIV中
		var responseText = document.createTextNode(xmlHttp.responseText);
		requestDiv.appendChild(responseText);
		//将JSON格式的TEXT转化成JSON对象,用eval('('+response+')')
		var resultJson = eval('('+xmlHttp.responseText+')');
		alert(resultJson);
		alert(resultJson.name);
		alert(resultJson.make);
		alert(resultJson.model);
		alert(resultJson.year);
		alert(resultJson.color);
	}
	
	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>
  </head>
  
  <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接受数据
package com.json.servlet;

import java.io.BufferedReader;
import java.io.IOException;

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

import net.sf.json.JSONObject;

public class JSONTest1 extends HttpServlet{

	private static final long serialVersionUID = 1L;
	
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}
	
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("----");
		String json = readJSONStringFromRequestBody(request);
		System.out.println("json = " + json);
	
		JSONObject jsonObject = JSONObject.fromObject(json);
		jsonObject.put("name", "benchi");
		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);
	}
	
	public String readJSONStringFromRequestBody(HttpServletRequest request){
		StringBuffer json = new StringBuffer();
		String line = null;
		try {
			BufferedReader reader = request.getReader();
			while((line = reader.readLine()) != null){
				System.out.println("line= " + line);
				json.append(line);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return json.toString();
	}
}



servlet在web.xml中的配置
 <servlet>
	<servlet-name>JSONTest1</servlet-name>
	<servlet-class>com.json.servlet.JSONTest1</servlet-class>
  </servlet>
  
  <servlet-mapping>
  	<servlet-name>JSONTest1</servlet-name>
  	<url-pattern>/JSONTest1</url-pattern>
  </servlet-mapping>


至此整个工程写完啦,下面的例子也在实际中常用
package com.mengya.jsonTest;

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;
	}
}



package com.mengya.jsonTest;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.commons.collections.map.HashedMap;

/**
 * 
 * @author fuchangle
 * 
 */
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"));
		
		String basic = "{name = \"fuchangle\", age = 26, address = \"北京海淀区\"}";
		JSONObject jsonObject2 = JSONObject.fromObject(basic);
		System.out.println(jsonObject2.get("name"));
		System.out.println(jsonObject2.get("age"));
		System.out.println(jsonObject2.get("address"));
	}
	
}



0
2
分享到:
评论

相关推荐

    ajax+json实例

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

    json实例json实例

    例如,以下是一个简单的JSON实例: ```json { "name": "张三", "age": 30, "isStudent": false, "hobbies": ["阅读", "编程", "旅行"], "address": { "city": "北京", "province": "北京市" } } ``` 在这...

    asp输出json实例,json.asp

    标题中的"asp输出json实例"意味着我们将探讨一个ASP脚本,该脚本能够创建并返回JSON格式的数据。这通常是通过在服务器端处理数据,然后以JSON字符串的形式传递给客户端,例如通过AJAX(Asynchronous JavaScript and ...

    C++ JSON实例

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

    json实例练习题11111

    在JSON实例练习题中,我们通常会涉及到以下几个关键知识点: 1. JSON对象:JSON对象由花括号{}包围,其中包含键值对。键用双引号括起来,后面跟着冒号,然后是对应的值。例如: ``` { "name": "张三", "age": ...

    json实例源码90r1

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

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

    在 `Test2` 类中,我们首先实例化了 `TotalJson` 对象,并设置了其成员变量 `results` 和 `items` 的值,然后使用 `JSONObject.fromObject()` 方法将 `TotalJson` 对象转换为 JSON 对象。 ```java TotalJson total =...

    IOS开发 json实例

    本教程将针对初学者,详细讲解如何在iOS应用中处理JSON实例。 首先,理解JSON的基本结构至关重要。JSON是一种轻量级的数据格式,以键值对的形式存储数据,支持数组和对象。例如: ```json { "name": "John", ...

    Gson解析复杂Json实例,超简单

    本教程将深入探讨如何使用Gson库解析复杂的JSON实例,让你只需寥寥几行代码就能轻松处理JSON解析问题。 ### Gson库简介 Gson库的核心功能是将Java对象(如自定义类)转换为JSON字符串,反之亦然。这个库非常直观,...

    基于SSH框架的JSON实例

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

    一个简单的json实例(含test.html和json.js)

    这个简单的JSON实例包含两个文件:`test.html`和`json.js`,它们是用于演示JSON在Web开发中的应用。 `test.html`文件通常是一个HTML页面,它在浏览器环境中运行,可以用来展示和交互数据。在这个实例中,`test....

    AjaxJson 实例 AjaxJson

    AjaxJson 实例通常包括以下步骤: 1. **创建 XMLHttpRequest 对象**:这是 AJAX 的基础,用于与服务器进行通信。在 JavaScript 中,可以通过 new XMLHttpRequest() 创建一个对象。 2. **配置请求**:设置请求类型...

    JSon.zip_JSON_Json实例;delphi_Z5O_delphi7 json

    4. 使用Delphi 7处理JSON实例:以SuperObject为例,你可以创建一个SO对象,然后通过Add方法添加键值对,或者通过ParseJSONValue解析JSON字符串。以下是一个简单的示例: ```delphi uses SuperObject; var JSONStr...

    struts1+JSON实例

    在这个"struts1+JSON实例"中,我们将深入探讨如何结合Struts1、JSON以及Ajax技术来实现一个功能丰富的学生选课系统。 首先,我们需要理解数据库设计的基础知识。在MySQL中,学生选课系统可能包括如下的表:`...

    Ajax、json实例学习代码

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

    简单的json实例

    标题“简单的json实例”暗示我们将探讨的是JSON的基本使用方法,可能包括如何创建JSON对象,以及如何在JavaScript中操作这些对象。JSON格式通常由键值对组成,键用引号包围,值可以是字符串、数字、布尔值、数组、...

    .net(C#) ajax+json实例

    在`.net(C#) ajax+json实例`中,开发者可能创建了一个Web应用,该应用使用C#后端处理业务逻辑,并通过Ajax请求与前端进行通信。前端可能使用JavaScript或者jQuery等库来发送Ajax请求,请求的数据格式为JSON。服务器...

    json 实例

    下面是一些JSON实例的示例: 1. 基本键值对: ```json { "name": "张三", "age": 30, "isStudent": false } ``` 在这个例子中,"name"、"age"和"isStudent"是键,对应的值分别是字符串"张三"、数字30和布尔值...

    AjaxStruts2Json实例

    **AjaxStruts2Json实例详解** 在Web开发中,用户界面的实时性和互动性变得越来越重要,这使得异步更新技术如Ajax(Asynchronous JavaScript and XML)被广泛应用。Ajax允许网页在不重新加载整个页面的情况下与...

Global site tag (gtag.js) - Google Analytics