SSM將後臺獲取的資料轉換成json格式傳遞到前臺頁面
1、後臺從資料庫中獲取資料,傳遞到response中
這一步折騰了我一整天,不知道是因為沒有傳遞到response中還是其他的原因,在前臺獲取的data,使用alert(data)輸出的一直為空值或null
有兩種方式可以實現這一步。一是利用註解@ResponseBody,二是利用PrintWriter。最終我是通過@ResponseBody成功完成了這一步,而不知道為什麼利用PrintWriter總是寫不成功,具體的原因我後面再研究研究吧。下面來介紹下這兩種實現方式:
(1)@ResponseBody,即將方法返回值寫到response物件中,程式碼如下:
<span style="font-family:Comic Sans MS;"> @RequestMapping("/addAction.do") <strong>@ResponseBody//將返回結果寫到response中</strong> public String save(HttpServletRequest request,HttpServletResponse response,Model model,@RequestParam(value="photo",required=false)MultipartFile fi ledata) throws IllegalArgumentException, IllegalAccessException{ //PrintWriter out=null; if(filedata!=null&&!filedata.isEmpty()){ //獲取圖片的檔名 String fileName=filedata.getOriginalFilename(); //獲取圖片的副檔名 String extensionName=fileName.substring(fileName.lastIndexOf(".")+1); //新的圖片名=獲取時間戳+"."圖片副檔名 String newFileName=String.valueOf(System.currentTimeMillis())+"."+extensionName; System.out.println(picUrl); //將圖片上傳到伺服器 //saveFile(newFileName,filedata); saveFile(fileName,filedata); //將圖片名稱儲存至資料庫 //photoService.insert(fileName); } JSONArray jsonArray=new JSONArray(); for(int i=10;i<30;i++){ Photo p=photoService.getPhotoById(new BigDecimal(i)); jsonArray.add(p); } //獲取單個json物件 /*JSONObject json=null; Photo p1=photoService.getPhotoById(new BigDecimal(3)); json=JSONObject.fromObject(p1);*/ <strong>return jsonArray.toString();</strong> }</span>
這裡我是利用net.sf.json.JSONArray;將從資料庫讀取的物件轉換成了json格式。
說到這裡,就要提下,要匯入的jar包
要使程式可以執行必須引入JSON-lib包,JSON-lib包同時依賴於以下的JAR包:
<span style="font-family:Comic Sans MS;">commons-lang.jar
commons-beanutils.jar
commons-collections.jar
commons-logging.jar
ezmorph.jar
json-lib-2.2.2-jdk15.jar</span>
這幾個jar包缺一不可,不然會報錯。
我的maven中pom.xml檔案的配置如下:
<span style="font-family:Comic Sans MS;"> <!-- json依賴的jar包 --> <dependency> <groupId>net.sf.json</groupId> <artifactId>json-lib</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>common-beanu</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.1</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.1</version> </dependency> <dependency> <groupId>ezmorph</groupId> <artifactId>ezmorph</artifactId> <version>1.0.6</version> </dependency></span>
(2) 利用PrintWriter實現如下:
<span style="font-family:Comic Sans MS;"> response.setCharacterEncoding("UTF-8");
response.setHeader("Cache-Control", "no-cache");
response.setContentType("application/json");
PrintWriter out=null;
try {
out=response.getWriter();
out.print(json.toString());
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}</span>
但是這樣一直不成功,具體的原因我還不是很清楚。
2、前臺獲取獲取後臺傳遞的json資料,利用jquery的ajax,程式碼如下:
<span style="font-family:Comic Sans MS;"> function photo(){
var val;
$.ajax({
async:false,
type:'get',//get是獲取資料,post是帶資料的向伺服器傳送請求
url:'addAction.do',
dataType:'json',
success:function(data){
val=eval(data);//轉換成js物件
alert(val[2].name);
alert(data);
},
error:function(data){
alert("JSON資料獲取失敗,請聯絡管理員!");
}
});
}</span>
主要是把ajax的相關引數弄明白,上述獲取資料的過程也就清楚了。
3、將json字串解析為js物件,獲取物件的相關值
<span style="font-family:Comic Sans MS;">val=eval(data);//轉換成js物件
alert(val[2].name);這一行程式碼便可以獲取對應的name值。</span>
感覺這三步寫起來很簡單,但是在實現過程中,我還是思考了很久的,主要是第一步的過程一直不行,導致第二步獲得的值為空,這裡總結下希望以後
不會再在這個地方卡住,通過這個過程,我也明白了SSM前臺和後臺互動的過程。
相關推薦
SSM將後臺獲取的資料轉換成json格式傳遞到前臺頁面
1、後臺從資料庫中獲取資料,傳遞到response中 這一步折騰了我一整天,不知道是因為沒有傳遞到response中還是其他的原因,在前臺獲取的data,使用alert(data)輸出的一直為空值或null 有兩種方式可以實現這一步。一是利用註解@ResponseBody,
pythonBug記錄:django將資料庫資料轉換成JSON格式
1.採用Django Model層,ORM技術 轉換成JSON格式 def getdata(request): # 使用ORM # all()返回的是QuerySet 資料型別;values()返回的是ValuesQuerySet 資料型別 ret = model
如何將list型別的資料轉換成json格式在伺服器端
今天學習瞭如何將object型別的資料轉換成json格式,並且在返回給瀏覽器,並且在瀏覽器端收到json格式的資料之後在成功的解析成我麼所需要的格式的資料 1:在伺服器端將object型別的資料轉換成json格式需要一些jar包 為了方便說清楚,以示例為主來
用fastjson將物件的列表轉換成json格式,並讀寫.json檔案
import com.alibaba.fastjson.JSON; import org.json.JSONArray; import org.json.JSONObject; public static void main(String[] args) {
JavaScript:表單序列化後的資料轉換成json格式
表單序列化可以比較方便的拿到form表單中的資料,但是序列化後的資料是一段url字串.這邊利用方法轉化成json資料格式: var DataDeal = { //將從form中通過
通過Ajax技術,將陣列型別資料轉換為JSON格式的物件
一、在伺服器端將list型別資料放入JSON物件中的方法 tjyjList=PxcscjbDAO.getTjyjList(pxcscjbQOMap); //生成JSON物件,用來容納獲得的樣卷陣列 JSONObject jsonObject=new JSONObjec
將一個物件集合轉換成JSON格式
List<ServiceWorkOrder> serviceWorkOrderList = new ArrayList<ServiceWorkOrder>(); //轉換成JSON各式 JSONArray jsonAr
Java將XML轉換成Json格式資料
/** * 將XML解析為JSON,讓Json處理服務支援XML報文 * 依賴包: * 1. jdom-2.0.2.jar : xml解析工具包; * 2. fastjson-1.1.36.jar : 阿里巴巴研發的高效能json工具包 */ p
JSON.parseArray():將json格式的資料轉換成陣列格式
1、這個方法的作用就是將json格式的資料轉換成陣列格式。 2、假設有Person這個類,有json型別資料jsonStr = [{"name":"張三","age":"1"},{"name":"李四","age":"4"}],那麼 List lists = json.p
android 將資料轉換成JSON資料格式並使用JSONObject解析JSON格式的資料
比起XML檔案解析,JSON資料解析的有點在於他的體積小,在網路上傳輸的時候可以更省流量。同時它也有缺點,Json資料的語義性較差,看起來沒有XML直觀。現在JSON已經被大多數開發人員所接受,在網路資料的傳輸當中應用非常廣泛。現在做的專案需要把資料轉換成下面的格式:
用表單格式化外掛jquery.serializejson將表單上的資料轉換成JSON物件
沒有這個外掛之前要想JS獲取到form表單的資料,在ajax傳到後臺也是蠻痛苦的事,雖然都是簡單用$(“#id”).val()獲取到表單的值,要是量多了也是很磨人的。 好吧,廢話不多說!看下這個jquery.serializejson.js外掛是怎麼給我們帶來
django-將數據庫數據轉換成JSON格式(ORM和SQL兩種情況)
user 展示 blog serialize 進行 項目開發 不管怎麽說 語句 spa 最近打算搞一個自動化運維平臺,所以在看Django的知識。 在實際項目開發中,遇到一個小問題:前後端發生數據交互主流采用的是JSON。前端傳數據到服務器端比較簡單,稍微麻煩的是服務器端傳
python:將xml格式文件轉換成json格式文件
Python 腳本 xml轉json 由於json格式的文件在處理起來,有很強的便利性,而工作中每天產生大量的xml格式的文件,所以有需求將xml格式的文件轉換成json格式的文件。下面直接貼出代碼,有兩個版本,根據需求自由選擇: #!/usr/bin/python # -*- coding: u
JS語句將後臺獲取資料在頁面展示方法原始碼
<!DOCTYPE html> <html> <head> <meta charset="utf-8" />
使用fastjson將list、map轉換成json,出現$ref
這是轉換時出現的問題情況( map >> json ) 引用是通過"$ref"來表示的 引用 描述 "$ref":".." 上一級 "$ref":"@" 當前物件,也就是自引用
用js將表單資料封裝成json字串
用js將表單資料封裝成json字串 1.js中封裝程式碼: $.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, func
Kettle將資料轉成JSON格式後通過restClient傳送POST請求
第一步:處理好自己的資料,然後轉成JSON格式,使用JSON Output控制元件,並且把要轉成JSON併發送出去的欄位和元素名稱的對映關係對應好 資料條目行數選擇不填,填數字將會按照填寫的數字拆分資料,會導致後面傳送POST請求變成一條一條傳,效率低下 輸出值outputVal
將物件轉換成json格式
public static String objectToJson(Object ts){ Gson gson=new Gson(); String jsonSt
將泛型資料轉換成datatable
泛型類: public class MoudeType { public string RGuid { get; set; } pu
將 鍵值對的資料 拼成 json 格式的 串
1 /** 2 * 3 * 2009-5-26 4 * 5 * 6 * 將某個物件轉化為Json資料格式 7 * */ 8 using System; 9 using System.Collections.Generic; 10 using