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"));
}
}
分享到:
相关推荐
.Net JQuery$.ajax Json实例应用 有人在评论里面骂,这个不能用,现在把源码传上来,估计是没有引用System.Web.Extensions和System.Web.Extensions.Design这两个Dll
**Ajax+JSON 实例详解** 在现代Web开发中,AJAX(Asynchronous JavaScript and XML)技术已经成为提升用户体验的重要工具,它允许网页在不刷新整个页面的情况下与服务器进行数据交互。结合JSON(JavaScript Object ...
在这个"JSON Servlet实例 Ajax应用"中,我们将探讨如何使用Servlet与客户端进行JSON数据交互,并结合Ajax实现异步通信。 首先,了解JSON的基本结构至关重要。JSON由键值对组成,键必须是字符串,且用双引号包围,值...
在提供的"C#解析JSON实例.rar"压缩包中,可能包含了一系列示例代码,演示了如何在C#环境中使用这两种方法处理JSON数据。通过学习这些实例,开发者可以更好地理解如何在实际项目中灵活运用JSON解析和生成技术。建议...
总的来说,ASP生成JSON实例展示了服务器端如何处理和传输数据到客户端,这对于构建交互式的Web应用程序至关重要。`json.asp`和`daka.asp`的代码分析将提供更深入的理解,包括具体的函数实现、数据处理逻辑以及如何与...
在实际应用中,ASP生成JSON对象通常包括以下步骤: 1. 创建ASP变量,存储要转换为JSON的数据结构。 2. 使用自定义函数或者库将ASP变量转换为JSON字符串。 3. 设置HTTP响应头,指定内容类型为`application/json`。 4....
在Web应用程序开发中,JSON扮演着重要角色,尤其在前后端数据交互方面。Struts2.0、Spring和Hibernate是Java企业级开发中的三大框架,它们各自负责不同的职责:Struts2.0主要处理MVC(Model-View-Controller)架构中...
在"json实例"这个主题中,我们将深入探讨JSON的基本结构、语法以及如何在实际编程中使用JSON。 1. JSON的基本结构: JSON数据通常由键值对组成,键和值之间用冒号隔开,而各对键值对之间则用逗号分隔。键必须是...
通过这些JSON实例练习题,你可以加深对JSON的理解,熟练掌握其语法和使用方法,从而更好地在实际项目中应用JSON。在练习过程中,你可能会遇到如何构造复杂的JSON结构、如何验证JSON数据的有效性以及如何在不同编程...
### 知识点详解 #### 一、JSON与Java对象之间的转换 在本示例中,我们探讨了如何将Java对象转换为JSON格式,并通过一个...此外,还介绍了如何使用第三方库简化 JSON 处理的过程,这对于实际应用来说是非常重要的。
1. 创建XMLHttpRequest对象:在现代浏览器中,我们可以直接通过`new XMLHttpRequest()`创建一个实例。 2. 配置请求:使用`open()`方法设置请求类型(GET或POST)、URL和是否异步执行。 3. 发送请求:调用`send()`...
### JSON应用实例详解 #### 1. JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁高效的特点,在Web开发中得到广泛应用。相比于XML等其他数据交换格式,JSON更易于人类阅读和编写...
实践是最好的老师,尝试创建自己的实例,不断调试和优化,这样你会更快地掌握 AjaxJson 的应用。 总的来说,AjaxJson 结合了 AJAX 的异步特性与 JSON 的数据交换优势,使得网页可以更加动态和响应式。对于初学者来...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。在Java中,处理JSON的主要库有Jackson、Gson、org.json和json-simple等。本实例将重点介绍如何使用Java的...
总的来说,C++ JSON实例提供了一个实践平台,让开发者了解如何在C++项目中有效地处理JSON数据。通过学习和使用提供的源代码,可以加深对JSON解析和序列化的理解,以及如何在VS2010环境中集成和使用第三方库。
标题"json实例源码90r1"表明这是一个关于C#的JSON应用实例集合,可能包含了不同版本的.NET Framework(如2.0, 3.5, 4.0, 4.5)下的代码示例。 描述中的"VS编程非常实用"提示我们,这些示例是为Visual Studio(VS)...
这个基于SSH框架的JSON实例不仅教你如何在Java Web应用中使用JSON,还涵盖了SSH框架的综合运用,包括Struts2的请求处理、Spring的依赖注入和事务管理,以及Hibernate的数据操作。对初学者来说,这是一次很好的实践,...
在这个“初学者 Json Demo 实例”中,我们将探讨如何使用JSON进行数据操作,特别关注它在实际应用中的基本用法。 1. JSON基本结构: JSON主要由对象和数组两种结构组成。对象以大括号{}包围,键值对以冒号分隔,...
在.NET框架中,C#语言提供了强大的支持来处理JSON数据,这在当今的Web应用程序开发中至关重要,因为JSON已经成为互联网上数据交换的标准格式。本文将深入探讨如何在C#中利用.NET库进行JSON接口的读取操作,并结合...