fastjson的使用(轉自:http://blog.csdn.net/wx_962464/article/details/37612861)
在開發Android的過程中,如果我們經常與伺服器打交道,更新資料等等,那麼json必然是個好的資料格式,但是有了json我們要解析它,使用原生的解析也可以,但是很不高效,所以這裡介紹兩種json資料解析的方式,一種是FastJSon ,這個是阿里巴巴出的,號稱最快的解析速度。第二種使我們偉大的Google提供的Gson 來解析json,兩個解析json都很方便,而且都很強大,在我使用中,基本上都滿足了我的需求,下面簡單就接受一下,我們的使用方法。
首先建立兩個實體類,Student.java 和 Teacher.java
Student.java 和Teacher.java 的程式碼如下:
- package com.android.fastjson.bean;
- publicclass Student {
- privateint id;
- private String name;
- privateint age;
- /**
- * 預設的構造方法必須不能省,不然不能解析
- */
- public Student(){
- }
- public Student(int id,String name,int age) {
-
this
- this.name = name;
- this.age = age;
- }
- publicint getId() {
- return id;
- }
- publicvoid setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- publicvoid setName(String name) {
-
this
- }
- publicint getAge() {
- return age;
- }
- publicvoid setAge(int age) {
- this.age = age;
- }
- @Override
- public String toString() {
- return"Student [id=" + id + ", name=" + name + ", age=" + age + "]";
- }
- }
[java] view plain copy print?
- package com.android.fastjson.bean;
- import java.util.List;
- publicclass Teacher {
- privateint id;
- private String name;
- private List<Student> students;
- /**
- * 預設的構造方法必須不能省,不然不能解析
- */
- public Teacher() {
- }
- public Teacher(int id,String name) {
- this.id = id;
- this.name = name;
- }
- publicint getId() {
- return id;
- }
- publicvoid setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- publicvoid setName(String name) {
- this.name = name;
- }
- public List<Student> getStudents() {
- return students;
- }
- publicvoid setStudents(List<Student> students) {
- this.students = students;
- }
- @Override
- public String toString() {
- return"Teacher [id=" + id + ", name=" + name + ", mStudents="
- + students + "]";
- }
- }
上面 的程式碼比較簡單,主要就幾個屬性,這裡值得注意的是, 預設的建構函式一定要寫,不然是無法解析的。(對於fastjson 嚴格按照JavaBean的規範來,有一點不對就無法解析,這裡一定要切記,每一個實體類的屬性的get , set 方法必須寫,切方法第四個字母必須大寫,最好使用Eclipse的source->genreal setters and getters 生成get,set 方法,切記,切記 )。對於Gson 這裡就沒有這麼多的要求了,但最好還是按照JavaBean來寫,避免一些位置的錯誤。
上面主要基本的介紹完了,就開始解析,首先要下載fastjson 和Gson的jar包,這個網上很多請自行下載。
首先看 fastjson 的解析
首先解析一個實體類為json 格式。
[html] view plain copy print?- Student student = new Student(0, "Aaron", 24);
- System.out.println(JSON.toJSONString(student));
- 輸出結果為:{"age":24,"id":0,"name":"Aaron"}
更復雜一點的資料型別也可以很方便的使用JSON.toJsonString(Object o) 這個方法進行解析成json格式。
[java] view plain copy print?- List<Student> students = new ArrayList<Student>();
- for(int i=0;i<5;i++) {
- Student stu = new Student(i, "Student" + i, 18 +i);
- students.add(stu);
- }
- [{"age":18,"id":0,"name":"Student0"},{"age":19,"id":1,"name":"Student1"},{"age":20,"id":2,"name":"Student2"},{"age":21,"id":3,"name":"Student3"},{"age":22,"id":4,"name":"Student4"}]
- List<Teacher> teaList = new ArrayList<Teacher>();
- long time = System.currentTimeMillis();
- for(int i=0;i<10;i++) {
- Teacher teacher = new Teacher(i, "Teacher " + i);
- List<Student> stus = new ArrayList<Student>();
- for(int j = 0 ;j<4;j++) {
- Student s = new Student(j, "Student" + j, 18 +j);
- stus.add(s);
- }
- teacher.setStudents(stus);
- teaList.add(teacher);
- }
- String jsonTeach = JSON.toJSONString(teaList);
- System.out.println("fastjson = " + jsonTeach);
結果為:
[plain] view plain copy print?- fastjson = [{"id":0,"name":"Teacher 0","students":[{"age":18,"id":0,"name":"Student0"},{"age":19,"id":1,"name":"Student1"}]},{"id":1,"name":"Teacher 1","students":[{"age":18,"id":0,"name":"Student0"},{"age":19,"id":1,"name":"Student1"}]},{"id":2,"name":"Teacher 2","students":[{"age":18,"id":0,"name":"Student0"},{"age":19,"id":1,"name":"Student1"}]},{"id":3,"name":"Teacher 3","students":[{"age":18,"id":0,"name":"Student0"},{"age":19,"id":1,"name":"Student1"}]}]
- 還是一個簡單的函式而已,就能辦到。
相關推薦
fastjson的使用(轉自:http://blog.csdn.net/wx_962464/article/details/37612861)
在開發Android的過程中,如果我們經常與伺服器打交道,更新資料等等,那麼json必然是個好的資料格式,但是有了json我們要解析它,使用原生的解析也可以,但是很不高效,所以這裡介紹兩種json資料解析的方式,一種是FastJSon ,這個是阿里巴巴出的,號稱最快的解
eclipse 集成Maven(轉自:http://blog.csdn.net/wode_dream/article/details/38052639)
lin loser 說明 位置 到你 ide lan core fontsize 當自己越來越多的接觸到開源項目時,發現大多數的開源項目都是用maven來夠建的。並且在開發應用時,也越來越意識到maven的確會解決很多問題,如果你要了解maven,可以參考:Maven入門
Hibernate物件三種狀態詳細分析(轉自http://blog.csdn.net/redarmy_chen/article/details/7069482)
在hibernate中有三種狀態:瞬時態(Transient)、 持久態(Persistent)、脫管態(Detached)。處於持久態的物件也稱為PO(Persistence Object),瞬時物件和脫管物件也稱為VO(Value Object)。通過自己在網上的搜尋,
Go語言庫之strconv包(轉載自--http://blog.csdn.net/alvine008/article/details/51283189)
整型 print 特殊 imp size 無符號 this http 相差 golang strconv.ParseInt 是將字符串轉換為數字的函數 func ParseInt(s string, base int, bitSize int) (i int64, err
Mongodb 叢集加keyFile認證,Mongodb使用者管理(轉:http://blog.csdn.net/wlzjsj/article/details/61421230)
介紹 自從遠古計繩結開始,資料庫的儲存就註定了今天的地位和多樣性,Nosql的出現更是解決了現有的關係型資料庫無法解決的一些難題,對高效能,靈活度,擴充套件性,海量資料的問題。隨之而出現的高速記憶體索引資料庫、列式儲存、影象儲存等等,這篇文章主要講的是mongodb文件型資料庫,mongodb目
Notepad++外掛之ftp/sftp遠端編輯功能,以及各種外掛(轉:http://blog.csdn.net/happy_wu/article/details/73302994)
Notepad++的ftp/sftp遠端編輯功能介紹:Notepad++是一個優秀的開源編輯器,最大特性就是外掛豐富,這裡分享一下我常用的實用外掛,其中一些是Npp預裝的。這些外掛主要是開發相關的,所以如果想需要其它外掛,可以瀏覽一下。這裡我主要寫的是FTP外掛。一般情況下我
laravel session使用 轉自http://blog.csdn.net/angle_hearts/article/details/53923782
com lar new get ssi name sym 存儲 angle use Symfony\Component\HttpFoundation\Session\Session;//存儲session$session = new Session;$session->
jquery中使用event.target的幾點說明 (轉自http://blog.csdn.net/zm2714/article/details/8119642)
board ngs 使用 net spa dtd meta xhtml function jquery中使用event.target的幾點說明 event.target 說明:引發事件的DOM元素。 this和event.target的區別 js中事件是
linux音頻alsa-uda134x驅動文檔閱讀之一轉自http://blog.csdn.net/wantianpei/article/details/7817293
發出 hand 增加 int chang == 音頻 set device 前言 目前,linux系統常用的音頻驅動有兩種形式:alsa oss alsa:現在是linux下音頻驅動的主要形式,與簡單的oss兼容。oss:過去的形式而我們板子上的uda1341用的就是als
SSIS獲得Excel行號(轉自http://blog.csdn.net/zplume/article/details/19113911)
number source 行數 put article 情況 art r+ 數據庫 問題描述: 首先個人並不推薦將Excel作為數據源,因為Excel單元格式會引起特別多的數據轉換問題,例如:單元格裏明明是2.89,但SSIS抽取到數據庫裏面之後卻變成了2.8899999
iotcl函式(轉自http://blog.csdn.net/shanshanpt/article/details/19897897)
我這裡說的ioctl函式是指驅動程式裡的,因為我不知道還有沒有別的場合用到了它,所以就規定了我們討論的範圍。寫這篇文章是因為我前一陣子被ioctl給搞混了,這幾天才弄明白它,於是在這裡清理一下頭腦。 一、 什麼是ioctl ioctl是裝置驅動程式中
關於LIST擴容的三種方式(轉載自https://blog.csdn.net/wt122694/article/details/81173128)
int[] arr2=new int[arr1.length*2] //新陣列長度 for(int i=0;i<arr1.length;i++){ //複製 arr2[i]=arr1[i]; }
python tkinter中點選回車清空Text,同時游標顯示在0.0(轉載自 https://blog.csdn.net/dcyywin8/article/details/83306011)
所遇問題: 當想要使用Text中的繫結事件回車清空Text中的內容時,總是先執行清空操作,再執行回車操作,這樣每次Text其它內容都清空了,但還是會留下一個回車。 思路: 使用bind方法獲取鍵盤的事件,當鍵盤事件(event)的keycode等於13時,觸發事件。新建一個執行緒作為被觸
Python Tkinter 會話窗口(轉載自https://blog.csdn.net/bnanoou/article/details/38515083)
until 運行 gif extra columns please sso alt date() Dialog Windows While the standard dialogs described in the previous section may be s
微擎模板函式、元件(轉: https://blog.csdn.net/qq_32737755/article/details/78064604)
官方文件裡模板函式寫的很少只有幾個!但這些元件直接呼叫很方便開發者開發,因此將其整理,方便查詢呼叫!使用前請務必 load()->func('tpl'); 載入模板元件函式 12模板函式在/framework/function/目錄下的tpl.func.php 檔案中定
sqlite 資料型別 全面(轉自:http://blog.csdn.net/jin868/article/details/5961263)
一般資料採用的固定的靜態資料型別,而SQLite採用的是動態資料型別,會根據存入值自動判斷。SQLite具有以下五種資料型別: 1.NULL:空值。 2.INTEGER:帶符號的整型,具體取決有存入數字的範圍大小。 3.REAL:浮點數字,儲存為8-byte IEEE浮
常用命令(轉http://blog.csdn.net/ljianhui/article/details/11100625/)
中斷 toc g++ 當前 rep bin 啟動 col 之間 1、cd命令 這是一個非常基本,也是大家經常需要使用的命令,它用於切換當前目錄,它的參數是要切換到的目錄的路徑,可以是絕對路徑,也可以是相對路徑。如: [plain] view plain copy
極大極小搜索思想+(α/β)減枝 【轉自-----https://blog.csdn.net/hzk_cpp/article/details/79275772】
ima 基本 個數 博弈論 數字 這就是 pre -- 繼續 極大極小搜索,即minimax搜索算法,專門用來做博弈論的問題的暴力. 多被稱為對抗搜索算法. 這個搜索算法的基本思想就是分兩層,一層是先手,記為a,還有一層是後手,記為b. 這個搜索是認為這a與b的利益關
Annovar註釋說明【轉載自http://blog.csdn.net/u013816205/article/details/51262289】
probably scores hit bar package 文件轉換 命名 gre 下載 ANNOVAR是一個perl編寫的命令行工具,能在安裝了perl解釋器的多種操作系統上 執行。允許多種輸入文件格式,包括最常被使用的VCF格式。輸出文件也有多種格式,包括註釋過的V
用maven插件自動生成mybatis代碼(轉載http://blog.csdn.net/yinkgh/article/details/52512983)
force true 添加 ima jdbc dbcc col sdn conn 1、在springmvc+mybatis項目的pom.xml文件中加如下內容,添加之後,maven會自動下載相關jar包,時間較長,需要耐心等待~~ <build> <