1 什么是json
2 json语法
3 json的使用
1 什么是json
JavaScript Object Notation(JavaScript 对象表示法)
是一种轻量级的数据交换格式。
注:
数据交换:将数据先转换成一种与平台无关的数据 格式(比如转换成xml),然后发送给接收方来处理。
轻量级:与xml相比,JSON文档更小,解析的速度更快。
2 json语法
2.1 表示一个对象
{属性名:属性值,属性名:属性值...}
JSON对象在大括号中书写
注:
属性名必须使用双引号括起来(即:属性名必须是字符串)。
属性值可以是string,number,true/false,null,object。
属性值如果是string,必须使用双引号括起来。
2.2 表示一个数组
JSON 数组在中括号中书写。
JSON 中数组值必须是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。
JavaScript 中,数组值可以是以上的 JSON 数据类型,也可以是 JavaScript 的表达式,包括函数,日期,及 undefined
3 使用json
3.1 将Java对象转换成json字符串
使用json-lib(JSONObject,JSONArray)

1 package test; 2 3 import java.io.Serializable; 4 import java.util.ArrayList; 5 import java.util.List; 6 import java.util.Random; 7 8 import entity.Stock; 9 import net.sf.json.JSONArray; 10 import net.sf.json.JSONObject; 11 12 public class TestJson implements Serializable { 13 14 private static void test01() { 15 Stock stock = new Stock(); 16 stock.setCode(111); 17 stock.setName("重庆力帆"); 18 stock.setPrice(10); 19 20 System.out.println(stock); 21 22 // 将Java对象装换成json字符串 23 JSONObject jsonObj = JSONObject.fromObject(stock); 24 String str = jsonObj.toString(); 25 System.out.println(str); 26 } 27 28 private static void test02() { 29 List<Stock> stocks = new ArrayList<Stock>(); 30 Random r = new Random(); 31 for(int i = 0; i < 4; i++) { 32 Stock stock = new Stock(); 33 stock.setCode(111 + i); 34 stock.setName("重庆力帆0" + i); 35 stock.setPrice(r.nextInt(30)); 36 37 stocks.add(stock); 38 } 39 40 System.out.println(stocks); 41 42 // 将多个Java对象组成的集合或者数组转换json字符串 43 JSONArray jsonArr = JSONArray.fromObject(stocks); 44 String arr = jsonArr.toString(); 45 System.out.println(arr); 46 47 } 48 49 public static void main(String[] args) { 50 test01(); 51 test02(); 52 } 53 54 }
3.2 将json字符串转换成js对象
javascript内置的一个对象JSON提供的方法(parse)

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Insert title here</title> 6 <script type="text/javascript"> 7 // 使用json语法表示一个对象 8 function f1() { 9 var obj = {"code":"123321","name":"fury","price":10}; 10 alert(obj.name); 11 }; 12 13 function f2() { 14 var obj = {"name":"庠序科技", 15 "address":{ 16 "city":"重庆", 17 "street":"沙坪坝三峡广场", 18 "phone":12332188 19 } 20 }; 21 alert(obj.address.street); 22 }; 23 24 // 使用json语法表示一个由对象组成的数组 25 function f3() { 26 var arr = [ 27 {"name":"warrior","age":24}, 28 {"name":"fury","age":18} 29 ]; 30 alert(arr[1].name); 31 } 32 33 // 将json字符串转换成javascript对象 34 function f4() { 35 var str = '{"name":"warrior", "age":24}'; 36 // 利用javascript内置的JSON对象提供的方法来做转换 37 var obj = JSON.parse(str); 38 alert(obj.name); 39 } 40 41 // 将json数组字符串转换成js数组 42 function f5() { 43 var str = '[{"name":"warrior","age":24},' + 44 '{"name":"fury","age":18}]'; 45 // 注意:返回的是由js对象组成的数组 46 var arr = JSON.parse(str); 47 48 alert(arr[1].name); 49 } 50 </script> 51 </head> 52 <body style="font-size:30px"> 53 <a href="javascript:f1();">ClickMe 1</a> 54 <hr /> 55 <a href="javascript:f2();">AlsoClickMe 2</a> 56 <hr /> 57 <a href="javascript:f3();">To clicke me 3</a> 58 <hr /> 59 <a href="javascript:f4();">Clike Me 4</a> 60 <hr /> 61 <a href="javascript:f5();">Also Clike Me 5</a> 62 </body> 63 </html>
4 利用jQuery实现ajax编程
利用jQuery实现ajax编程只需要实现 $.ajax() 方法就行了
4.1 用法
$.ajax({});
4.2 常见的选项参数有这样一些
url: 请求地址。
type: 请求类型(比如 'get')。
data: 请求参数,有两种格式:
第一种:请求字符串形式,比如 "size=3"。
第二种:对象形式,比如 {"size":3} 。
dataType:服务器返回的数据类型(text: 文本, json: json字符串, xml: xml文档)
success:当服务器处理正确,用来处理服务器返回的 数据的函数。
error:当服务器出错,用来处理异常的函数。
本博客源代码:点击前往