JSON

前端後端傳輸數據格式的要求

java語言是一種強類型的語言,必須定義類型,然後生成實例,而js卻不是,雖然它也是面向對象的,但是它並沒有先定義類這一種概念(但是js也有類型),它是基於原型的一種模式,和java完全不同。很顯然,二者的原理,機制,語法並不能兼容。二者產生的對象並不能被對方解讀。再來看網絡傳輸,通常就是http/tcp協議嘍,使用的其實是請求-響應,再說白了即使字符串,不論後臺傳來的是什麼類型的數據,也不論前臺傳回的什麼類型的數據,網絡層統統當作字符串處理,它也沒有辦法來解析類型啊!說到這裏,前後臺傳數據也就只能用字符串了,那也就意味着它們各自都要完成一個轉換過程,把要發送的轉換成字符串,把要收到的字符串解析成自己的對象。因爲傳輸的字符串會涉及前後臺雙方的解析和處理,所以雙方都必須認識或者知道字符串該怎麼轉,也就是說,最好能有一種通用的規則來編輯,轉換字符串,這個標準或者協議就是JSON,JSON就是用來交換數據的,是一種string,一種獨立於平臺的數據格式。

這樣一來,前臺就需要把自己的數據類型轉成JSON,然後發給後臺,後臺在用JSON來解析數據,轉換成自己的類型。後臺傳前臺一樣。那麼,怎麼把自己的數據轉成JSON呢?

1,如果知道JSON什麼格式,完全可以自己拼寫string,但是這樣不能避免完全正確,而且可能會有安全隱患,那麼就用第三方提供的庫。

2,在js中,可以使用JSON.stringify()函數,把一個js中的對象轉成json的string,也可以使用JSON.parse()函數,把一個json的string轉成一個js裏的對象。

3,在java中,有JSONObject和JSONArray兩個對象,轉string就用它們的toString()函數,轉對象,就用toBean()和toArray()函數。需要注意的是JSONObject必須是string的鍵。

代碼實現

web

//建立json對象
var json = {};    
//爲json對象添加元素
 json.itemType1=itemType1;
 json.itemType2=itemType2;
 json.itemType3=itemType3;
 json.itemdesc=itemdesc;
 //將json對象轉化爲字符串類型
 var josns = JSON.stringify(json);

後端

        //將json字符串轉換成json對象
        JSONObject jsonObject = JSON.parseObject(json);
        //獲取json對象裏面的數據
        jsonObject.getString("itemType2")
               

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章