JavaWeb之JSON


一、什么是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

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM