1. 程式人生 > >servlet中查詢出的list轉換為json格式輸出

servlet中查詢出的list轉換為json格式輸出

servlet與dao中需要用到
List集合中的物件是一個Map物件,而這個Map物件的鍵是String型別,值是Object型別
List以Map介面物件為列表物件。
Map以String為鍵,以Object為值。
List裡只能放Map型別的物件,而這個Map型別的物件又只能放以String型別為鍵,以Object型別為值的鍵值對。

DAO:

public class AllTeacherDao extends DBHelper{
	public List<Map<String, Object>> getAll(){
		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();  
		String sql = "select id,teachername,password,tel from teacher ";
		ResultSet rs = this.executeQuery(sql);
		try {
			while(rs.next()){
				HashMap<String, Object> map = new HashMap<String, Object>();  
	            map.put("id", rs.getInt("id"));   
	            map.put("teachername", rs.getString("teachername"));  
	            map.put("password", rs.getString("password"));  
	            map.put("tel", rs.getString("tel"));  
	            list.add(map);  
				
			}
		} catch (SQLException e) {
			// TODO 自動生成的 catch 塊
			e.printStackTrace();
		}finally {
			this.close();
			
		}
		System.out.print("AllTeacherDao執行");
		return list;
	}
}

servlet:

使用JSONStringer,需要匯入json的6個jar

JSONStringer 類用來快速方便地建立一個Json文字,創建出來的文字完全符合Json文字的語法,沒有多餘的空格鍵,所以生成的文字可以直接被儲存或者傳輸,每一個JSONStringer的例項都能建立一個JSON文字。

一個JSONStringer的例項提供了一個value方法來向文字中新增鍵值,提供了一個key方法,key方法必須在value方法之前呼叫,用來向文字中新增鍵,有一個array和endArray方法用來製作和捆綁陣列值,也有object方法和endObject方法用來製作和捆綁object值。每一個方法都返回一個JSONStringer的例項,允許有串聯結構。例如:

myString = new JSONStringer()
    .object()
        .key("JSON").value("Hello, World!")
    .endObject()
    .toString;

上面這個例項建立瞭如下的字串:

 {"JSON":"Hello, World!"}

第一個方法必須是object 或者array,沒有方法用來新增逗號和冒號,JSONStringer自動為你新增,object或者是array最多可以巢狀20層。

有的時候,使用JSONStringer類比使用JSONObject 類更容易建立一個Json文字

構造方法:

JSONStringer()——-構造一個新的JSONStringer 物件

方法:

array()——開始新增一個array

endArray()——結束一個array

object()——開始新增一個object

endObject()——結束一個object

key(String s)——新增一個鍵

value系列方法——新增一個鍵值

toString()——返回一個JSON文字的字串


protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

	super.service(req, resp);
	AllTeacherDao dao= new AllTeacherDao();
	List<Map<String, Object>> list = dao.getAll();  
	JSONStringer stringer = new JSONStringer();  
	 stringer.array();  
     for (int i = 0; i < list.size(); i++) {  
         Map<String, Object> teacherlist= list.get(i);  
         try {  
             stringer.object();  
             Iterator it = teacherlist.keySet().iterator();  //迭代器,返回一個所有key值的迭代遍歷
             while (it.hasNext()) {  
                 Object key = it.next();  
                 stringer.key((String) key).value(teacherlist.get(key));  
             }  
             stringer.endObject();  
         } catch (JSONException e) {  
             // TODO Auto-generated catch block  
             e.printStackTrace();  
         }  

     }  
     stringer.endArray();    
     PrintWriter out = resp.getWriter();
     out.print(stringer.toString());  
	
	
	System.out.println("servlet執行");
	

}

相關推薦

servlet查詢list轉換json格式輸出

servlet與dao中需要用到List集合中的物件是一個Map物件,而這個Map物件的鍵是String型別,值是Object型別 List以Map介面物件為列表物件。 Map以String為鍵,以Object為值。 List裡只能放Map型別的物件,而這個Map型別的物件又

將資料庫查詢的結果轉換json

呼叫介面,無非也就是開啟連結 讀取流 將結果以流的形式輸出將查詢結果以json返回,無非就是將查詢到的結果轉換成jsonObject=============================================================/*** * 將從資料中取到的結果以json的

json格式資料,將資料庫查詢的結果轉換json, 然後呼叫介面的方式返回json(方式一)

呼叫介面,無非也就是開啟連結 讀取流 將結果以流的形式輸出 將查詢結果以json返回,無非就是將查詢到的結果轉換成jsonObject ============================================================= /***     * 將從資料中取到的結果以jso

ajax返回值List轉換json格式資料

總的來說,程式碼就是下面這個樣子,不多說了,直接上程式碼,大家看的就是一目瞭然了。 var data = new Array(); for(var i=0;i<res.data.leng

PHP將資料庫查詢內容轉換JSON格式且顯示中文

最近寫android,開始寫伺服器了。最終伺服器的語言就先定為PHP,因為以前寫過一陣子網頁,所以就先用PHP試試水。 那麼首先為了實現android前端與伺服器互動,那麼我們伺服器傳輸的資料就要先變為JSON格式。 那麼如何將資料庫中的內容查詢出來,並且使其轉變為JSON格式呢?程式碼如下

java連線資料庫,並把查詢的結果轉換JSON步驟記錄

myeclipse連線mysql資料庫 下載mysql和myeclipse;- 記錄一下我的myeclipse連線mysql所遇見的問題 1.第一步在myeclipse建立一個java工程 new->java project 2.第二步在工程檔案下建立li

List轉換Json物件

將List轉換為Json物件,分別有兩個Json的jar包: 1、org.json.JSONArray包 2、net.sf.json.JSONArray包 兩個JSONArray分別實現方式: 1、org.json.JSONArray包 List al

前端頁面把form表單的資料轉換json格式

$.fn.serializeJson=function(){               var serializeObj={};               var array=this.serializeArray();               var str=th

處理將list 轉換json,js時間顯示毫秒數問題

1.後臺將一個list轉換為json HttpServletResponse response = getResponse();         response.setContentType("text/json;charset=utf-8");         Prin

親測可用:將資料庫查詢結果DataReader轉換Json

如果有其他型別的話,大概可以歸為兩類,需要加""的,和不需要加的,這裡我都有處理,可以直接在對應處新增型別即可。因為我查詢的資料裡牽扯到了datetime,所以我將其轉換成了string來處理         /// <summary>           /// DataReader轉換為Js

對象轉換json格式,類似中間層API

-- 簡單 xmlns 支持 ota org div bsp jackson 《一頭紮進SpringMvc視頻教程\《一頭紮進SpringMvc》第四講 源碼\》 對象自動轉換為json格式要在 spring-mvc.xml添加一個東西 ,和對應的命名空間引用和規範,和對

數據轉換json格式

json 數據轉換 格式 一.使用Gson轉換為json格式依賴的maven包:<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</art

@ResponseBody將集合數據轉換json格式並返回給客戶端

-m path ray es2017 cnblogs class framework add work spring-mvc.xml: <beans xmlns:mvc="http://www.springframework.org/schema/mvc"

json.loads()將字串轉換json格式出錯

今天爬取今日頭條的街拍時,需要將裡面的一個字串變為json格式,結果直接轉換就出現了 json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

怎麼將wav音訊的一小段轉換m4r格式

很多人手機都是使用預設鈴聲,在公共場合一個手機鈴聲響了,會有一群人檢視是不是自己的手機響了。小編比較喜歡與眾不同、追求個性化,所以手機鈴聲當然也要是獨一無二的!既然想要獨特的,那就自己製作!相信很多網友在聽到一首好聽的音樂的時候也會有想拿來製作鈴聲的衝動,而一般

logstash收集Nginx日誌,轉換JSON格式

Nginx日誌處理為JSON格式,並放置在http區塊: 1 log_format json '{"@timestamp":"$time_iso8601",' 2 '"@version":"1",' 3

將資料轉換json格式程式碼

本文資料轉json格式的入門程式碼,建立java檔案即可 用於將實體資訊封裝成json格式資料 使用工具:myeclipse 匯入包gson.jar 專案結構: SchoolInfo.java p

通過Ajax技術,將陣列型別資料轉換JSON格式的物件

一、在伺服器端將list型別資料放入JSON物件中的方法  tjyjList=PxcscjbDAO.getTjyjList(pxcscjbQOMap);  //生成JSON物件,用來容納獲得的樣卷陣列  JSONObject jsonObject=new JSONObjec

php物件陣列轉換json格式陣列,再轉回object物件陣列

$list為資料庫獲取的物件陣列, $json_encode($obj0) 對$obj0進行json編碼 $arr=json_decode( json_encode($obj0), true ); 轉換為陣列 $list[$i]=$arr= (object) $arr;//

C#——物件轉換JSON格式的字串

問題來源 這幾日正值伏天,我發現成都不是下大雨就是烈日炎炎的天氣。七月上旬車子也壞掉了,去南門體育管健身房要走20來分鐘,再回到研究院大樓又是20多分鐘,一路上不是大雨就是烈日,還好鍛鍊後多巴胺讓我持續維持一天極好的心情。實驗室實在涼快,下面趁著休息總結一下今天所學——我們