一、什么是JSON?
JSON: JavaScript Object Notation(JavaScript 对象表示法)
JSON 是存储和交换文本信息的语法。类似 XML。
JSON 比 XML 更小、更快,更易解析。
二、JSON语法规则
数据在名称/值对中("name" : "菜鸟教程" 和 name = "菜鸟教程" 一样)
数据由逗号分隔
大括号保存对象
中括号保存数组
JSON对象(在大括号({})中书写)
var p ={name:"tom",age:50};
document.write(p.name);
JSON数组(在中括号中书写)
var pp =[{name:"tom",age:50},{name:"milk",age:22}];
document.write(pp[1].name);
三、JSON中的方法
3.1、JSON.parse()方法
JSON 通常用于与服务端交换数据。在接收服务器数据时一般是字符串。我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。
如:我们在服务器端有{name:"tom",age:17}
使用 JSON.parse() 方法处理以上数据,将其转换为 JavaScript 对象
var peo = JSON.parse('{name:"tom",age:17}');
注意:解析前要确保你的数据是标准的 JSON 格式,否则会解析出错。
在如:使用 AJAX 从服务器请求 JSON 数据,并解析为 JavaScript 对象
var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myObj = JSON.parse(this.responseText); //如果JSON数据是数据解析成对象,如果是数组,也解析成数组。 document.getElementById("demo").innerHTML = myObj.name; } }; xmlhttp.open("GET", "/try/ajax/json_demo.txt", true); xmlhttp.send();
3.2、JSON.stringify()
JSON 通常用于与服务端交换数据。在向服务器发送数据时一般是字符串。我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。
如:我们需要将 var obj ={name:"tom",age:18};发送给服务器
JSON.stringify() 方法处理以上数据,将其转换为字符串:
JSON.stringify(obj);
再如:将javascript数组转换成JSON字符串
var arr = [ "Google", "Runoob", "Taobao", "Facebook" ];
var myJSON = JSON.stringify(arr);
document.getElementById("demo").innerHTML = myJSON;
四、使用JSON框架
使用框架必然要导入的是jar包,最后可以为大家提供jar包,接下来我们看它的用法。
package testJSON; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanListHandler; import org.junit.Test; import com.jxlg.domain.Book; import com.jxlg.util.C3P0Util; public class testJSON { @Test //使用JSONObject对象封装对象数据类型 public void test() { Book b = new Book(); b.setName("账单"); b.setId("100"); b.setPrice(55); String s = JSONObject.fromObject(b).toString(); System.out.println(s); } @Test //使用JSON对象封装List<Book> public void test1(){ List<Book> books = new ArrayList<Book>(); Book b1 =new Book(); Book b2 =new Book(); Book b3 =new Book(); b1.setName("账单"); b1.setId("1001"); b1.setPrice(55); b2.setName("花花"); b2.setId("1002"); b2.setPrice(23); b3.setName("阿德"); b3.setId("1003"); b3.setPrice(11); books.add(b1); books.add(b2); books.add(b3); String m = JSONArray.fromObject(books).toString(); System.out.println(m); } @Test //使用JsonConfig去除不需要的字段 public void test3() throws SQLException{ QueryRunner qr =new QueryRunner(C3P0Util.getDateSource()); List<Book> books = qr.query("select * from book", new BeanListHandler<Book>(Book.class)); JsonConfig jc = new JsonConfig(); jc.setExcludes(new String[]{"id","category","description"}); String m = JSONArray.fromObject(books,jc).toString(); System.out.println(m); } }
结果:
把这些数据都封装成了JSON类型的数据,可以在前端更好的获取显示
提供使用JSON中需要的jar包,不谢:
链接:http://pan.baidu.com/s/1pKBwSOV 密码:iru5
20:08:44