前台向后台傳遞JSON字符串,處理JSON字符串類型的方法


--歡迎多多評論多多交流,指正缺點

 

在這之前必要提到這些JSON的轉換都是依賴於引入   ,

首先你得懂得用 ajax 傳值到一般處理程序, 以及基本得json字符串結構

 

Newtonsoft.Json.dll  動態鏈接庫文件,

需要的同學可以點擊鏈接去我的百度雲下載 ,下面給出地址   

鏈接:https://pan.baidu.com/s/1yINv3y6r-MsV1C6hcyxMtQ   提取碼:2lv6 

 

用的時候就首先引入命名空間就可以調用里面的方法拉

 

 

然后我們來介紹介紹里面的主要方法

 

1) JsonConvert.SerializeObject()           將指定的對象序列化為JSON字符串。      (后台打包回來)

2)  JsonConvert.DeserializeObject()    將JSON字符串反序列化為指定的.NET類型     (后台解析,JSON字符串為某種集合類型)

3) JSON.parse()                將JSON字符串轉為一個對象。         (前台轉換)

4)   JSON.stringify()            將 JavaScript 值轉換為 JSON 字符串,     (前台轉換)

 

    

 

里面有很多轉換方法,但這里主要轉換是字符串,數組,鍵值對 的方法, 其他方法不過多累贅

 

 

 

 

JSON傳遞到后台的數據是多種多樣的,但基本思想大致是一樣的,(我想其他的傳遞思想應該是大同小異的)

1.不同的傳值方式前台序列化成JSON字符串傳遞到后台

2.后台用合適的集合或者封裝類的方法進行解析淺談傳遞過來的JSON字符串,然后在后台程序中處理,處理完成序列化成JSON字符串打包回來

3.前台接送到后台傳遞回來的JSON字符串,轉換為JSON 對象進行合理的拆分,取值(原來什么類型傳就用什么方式取)

 

 

 

 

(方法1——傳遞單個字符串)      當傳遞單個值得情況下
var self="asd";   

JSON.stringify("asd") 后台接收:  "asd"

如果說單純得傳遞一個字符串到后台得時候往往是非常容易的,           這里就不過多累贅

比較簡單得就可實現 數據庫語句得字符串拼接了,  

這個時候而言,我們無非就是對返回回來的字符串進行判讀處理,值得一提的是如果我們返回一個Bool 值類型 ,在經過toString()方法之后,   首字母是會轉換成大寫的

 因此判斷的時候如果出錯要稍微注意一下了

 

 

 

 

 

(方法2,3 傳遞多值得時候)通過一個例子來理解把

這個例子是基於點擊按鈕之后,通過后台為文本添加上已經處理

點擊之后效果如下

 

 

(方法2——傳遞鍵值對的形式)    

獲取相應文本框的數據作為值,

 我們在文本框依次輸入   測試數據1,測試數據2,測試數據3,測試數據4    

 

如果我們前台alert直接彈出這個return的值 

alert(JSON.stringify([object Object]) )彈窗處理這個對象之后可以得到這樣一個JSON 字符串:

 

    

那么后台(一般處理程序或者類文件中)如何取出這樣的鍵值對形式呢,可以直接通過字典集合的形式進行解析處理      一般來所鍵值對的形式我們用字典集合處理比較好

       Dictionary<string, string> WeekDictionary = JsonConvert.DeserializeObject<Dictionary<string, string>>(pars);  //將我們的鍵值對對象轉換為字典集合
        for (int i = 0; i < WeekDictionary.Count; i++)
        {
            string ValueIndex = "value" + (i + 1).ToString(); WeekDictionary[ValueIndex] = "已處理" + WeekDictionary[ValueIndex]; } return JsonConvert.SerializeObject(WeekDictionary);                                 //將指定的對象序列化為JSON字符串。

 

這樣我們就可以在前台用統一的格式來處理這個JSON字符串了 

 

 對於這個  re  數據 我們可以對它進行處理,之后就可以在前台通過類似數組的索引的方式取出某一個值了

msg = (typeof (data) == "object" ? msg : JSON.parse(data)); //將這個json字符串轉換成json對象
//將返回回來的數據轉換成為一個數組
self.elems.$tmpl_input.val(msg["value1"]);
self.elems.$tmpl_input1.val(msg["value2"]);
self.elems.$tmpl_input2.val(msg["value3"]);
self.elems.$tmpl_input3.val(msg["value4"]);

 

 msg = (typeof (re) == "object" ? msg : JSON.parse(re));         --這句的意思是判斷是不是一個JSON對象,如果不是將JSON字符串轉為一個對象。

 

 

 

 

 

 

 

 (方法3——傳數組的形式)   

 

如果我們前台     alert($p);

 

alert(JSON.stringify($p)); 處理這個對象之后可以得到這樣一個JSON 字符串:

 

 

 后台轉換之后得到的數據

 

最后經過    JsonConvert.SerializeObject(list);               //將指定的list集合序列化為JSON字符串。  (拿數據)

 

在這之后前台可以拿到數據

 

 對於這個  re  數據 我們可以對它進行處理,之后就可以在前台通過類似數組的索引的方式取出某一個值了           (讀取數據)

msg = (typeof (data) == "object" ? msg : JSON.parse(data));                   //將這個json字符串轉換成json對象
                self.elems.$tmpl_input.val(msg[0]);
                self.elems.$tmpl_input1.val(msg[1]); self.elems.$tmpl_input2.val(msg[2]); self.elems.$tmpl_input3.val(msg[3]);

 msg = (typeof (re) == "object" ? msg : JSON.parse(re));         

--這句的意思是判斷是不是一個JSON對象,如果不是將JSON字符串轉為一個對象。

 

 

 

 

 

 

----不能只思考而不去做,也不能只去做而不思考,同樣在生活中也要成為一個細心的人

 


免責聲明!

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



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