1. 程式人生 > >前後端資料互動之物件集合(JSON)

前後端資料互動之物件集合(JSON)

後端程式碼:

List<User> users = JSON.parseArray("JSON資料",User.class)

前端程式碼:

//...省略請求介面方式程式碼段(往常怎樣呼叫就怎樣呼叫,只是資料格式的變化。)
...
//傳入資料格式例項
[{"name":"zhangsan",age:"23"},{"name":"xiaohong","age":"25"}]

 程式碼分析:

1.後端採用的阿里的JSON解析解決方案,parseArray方法是將json資料轉換為集合,引數為String型別的JSON資料格式和需要轉換為的物件的class屬性。

2

.name、age為屬性用逗號分隔,zhangsan、23為值,值和屬性用冒號分割,{} 所包含的相當於一個物件(眾多屬性及值的集合),{} 與 {}之間用逗號分隔,[] 包含的相當於一個物件集合。

3.這裡採用阿里的依賴fastjson----https://mvnrepository.com/artifact/com.alibaba/fastjson

注:

1.JSON資料是一種資料格式而並非資料型別,這種格式通常用String型別儲存或傳輸

2.有關xxx.class後的class屬性解釋:https://blog.csdn.net/u012453619/article/details/38638313utm_source=tuicool&utm_medium=referral

3.有關JSON資料格式基本概念(滑稽.jpg):

https://so.csdn.net/so/search/s.do?q=json&t=&o=&s=&l=

 

 

 

 

 

接下來是我個人的一些見解:

1.前後端之間的資料傳輸,我一直有一些不爽,如在傳二維陣列通過連結直接傳輸時會將二維陣列變為一位陣列傳輸,以及傳集合時的報錯。這之間我本身也存在一些問題,比如對於請求頭,HTTP協議,資料傳輸方面的不瞭解,以及秉著能不用再學習新的東西就不學,能不用就不用的偷懶方式讓我耗費了一些時間,直到最近同事遇到了這個問題,我才想著要用正確的方式解決,大概是因為是好幾個人的事所以我不太好掌控或測試,也可能是人多了所以自己也肅然起敬了吧。

2.class屬性,這東西我當時把我用折騰了一番,因為我一直沙比式的想為啥這傢伙可以點出方法和屬性出來而且他為什麼又可以定義類又可以當屬性,他一定是在哪兒進行了定義,然後我翻閱了許多部落格卻還是對這個class的定義模糊,其中我翻閱到了java本身有一些不是自我開發的,而是由c、c++第三方語言來開發的知識點以及自我在檢視原始碼無意中看到了native關鍵字,於是我順著這個走到了javac、javah命令,以及編寫了一些.h  .c檔案,其中有段有趣的回憶,我看著這個不太用到的javac命令,如此緊貼在一起的字母,在我腦海中一下就分開了,java、c。於是我想著我曾經學過的c,每次都要定義#<stdio.h>,好吧我又注意到了h字母身上,於是我發現一個字母就等於一個世界,好吧當我用javah成功生成了h檔案之後,這一路的疑惑和迷茫稍微放鬆了一些,然後我目光凝視著class,然後我終於開了口所以這特麼到底是什麼雞兒玩意啊,但是我心中明白了這傢伙一定跟jvm有著某種交易,然後我秉著不想掉頭髮的心理放棄了這場與class對抗的戰鬥,之後長達幾個月再也沒有這樣身心俱疲過了,果然搞計算機沒點天賦和腦子是不行啊,於是我的理想由IT大佬變成了在老家開一家小賣部...................................直到剛剛寫部落格的時候,我在idea中看到金燦燦的class,我突然腦袋中顯現出一堆關鍵字,this、super.......於是我發現這特孃的不就是關鍵字麼,你說我管他幹嘛,還去原始碼中找他定義的位置,原來是一開始我對class關鍵字的定義出現了偏差,才導致頭髮的掉落,然後我將目光移向了所有關鍵字,隨之呵呵一笑的玩遊戲去了,沒錯,我慫了。

3.JSON,json是一種資料格式,簡單來說就是一堆資料,我用特定的方式來規定這堆資料,然後通過一些特殊字元來確立這一段資料屬於什麼,那一段資料屬於什麼,於是這段資料就有了語法一樣,其實只是對資料進行的分類、整理。json沒什麼可談的,吹一波阿里吧,阿里在解析json資料方面速度是最快的,這句話是百度的沒錯,畢竟我也沒有用過其他json的解決方案。

 

                                                                                                                                       歡迎技術討論:2161672665

                                                                                       感謝翻閱