JSON資料之使用Fastjson進行解析(一)

來源:互聯網
上載者:User

標籤:void   page   檔案   fileinput   .class   exce   etl   網址   相對   

據說FastJson是目前最快的解析Json資料的庫,而且是國人開發出來的開源庫。頂一下,付上官方網址:http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=2424946

要使用Fastjson,首先需要下載相對應的jar檔案,在官網即可下載。
附上初學的第一個例子,多多指教:

{    "statuses":[        {         "id": 912345678901,         "text": "How do I stream JSON in Java?",         "geo": null,         "user": {        "name": "json_newb",        "followers_count": 41              }          },                  {         "id": 777777777888,         "text": "dfngsdnglnsldfnsl",         "geo": null,         "user": {        "name": "dsfgpd",        "followers_count": 24              }          }     ]}


AllBean的Bean類:

package com.lee.JsonToBean;public class AllBean {    private long id;    private String text;    private String geo;    private UserBean userBean;    public long getId() {        return id;    }    public void setId(long id) {        this.id = id;    }    public String getText() {        return text;    }    public void setText(String text) {        this.text = text;    }    public String getGeo() {        return geo;    }    public void setGeo(String geo) {        this.geo = geo;    }    public UserBean getUserBean() {        return userBean;    }    public void setUserBean(UserBean userBean) {        this.userBean = userBean;    }    }


UserBean的Bean類:

package com.lee.JsonToBean;public class UserBean {    private String name;    private int followers_count;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getFollowers_count() {        return followers_count;    }    public void setFollowers_count(int followers_count) {        this.followers_count = followers_count;    }}


解析類JsonBean:

package com.lee.JsonToBean;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.List;import javax.swing.text.BadLocationException;import javax.swing.text.DefaultStyledDocument;import javax.swing.text.rtf.RTFEditorKit;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;/** * {    "statuses":[        {         "id": 912345678901,         "text": "How do I stream JSON in Java?",         "geo": null,         "user": {        "name": "json_newb",        "followers_count": 41              }          },                  {         "id": 777777777888,         "text": "dfngsdnglnsldfnsl",         "geo": null,         "user": {        "name": "dsfgpd",        "followers_count": 24              }          }     ]}  * */public class JsonBean {    RTFEditorKit rtf;    DefaultStyledDocument dsd;    String text;    public static void main(String[] args) {        JsonBean bean = new JsonBean();        // 把字串轉為Json對象,這是因為我的json資料首先是json對象        JSONObject jobj = JSON.parseObject(bean.readRtf(new File("json.rtf")));        // 然後是jsonArray,可以根據我的json資料知道        JSONArray arr = jobj.getJSONArray("statuses");        // 根據Bean類的到每一個json數組的項        List<AllBean> listBeans = JSON.parseArray(arr.toString(), AllBean.class);        // 遍曆        for(AllBean bean_ : listBeans){            // 我這個demo的json資料獲得第一層的資料            System.out.println(bean_.getText());            System.out.println(bean_.getId());            // 我這個demo的json資料獲得第二層的資料            System.out.println(bean_.getUserBean().getFollowers_count());        }    }        // 因為我把json資料放進rtf檔案,這是讀取rtf檔案的json資料,轉化為字串    public String readRtf(File in) {          rtf=new RTFEditorKit();          dsd=new DefaultStyledDocument();          try {              rtf.read(new FileInputStream(in), dsd, 0);              text = new String(dsd.getText(0, dsd.getLength()));          } catch (FileNotFoundException e) {              // TODO Auto-generated catch block              e.printStackTrace();          } catch (IOException e) {              // TODO Auto-generated catch block              e.printStackTrace();          } catch (BadLocationException e) {              // TODO Auto-generated catch block              e.printStackTrace();          }        return text;      }  }


最後,附上程式碼:FastJsonTest.zip

 

from: http://www.cnblogs.com/lee0oo0/archive/2013/05/08/3066371.html

JSON資料之使用Fastjson進行解析(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.