1. 程式人生 > >對json串的解析 fastjson gson ajax非同步重新整理

對json串的解析 fastjson gson ajax非同步重新整理

json 是輕量級的傳輸文字格式,解析簡單,支援各種語言 json語法特點:以鍵值對的形式儲存 資料之間用逗號分隔 {}是一個物件 []是一個數據(集合) fastjson解析 是阿里出的對json處理

eg: [{“sid”:1 , “sname”:”leif” , “salary”:3000},{“sid”:2 , “sname”:”Suny” , “salary”:4000}]

    String studentJson="{\"uid\":1,\"uname\":\"小彬彬\",\"uproject\":\"Mathmatics\"}";

    //手動解析json,
    //第一個引數是需要解析的json字串,第二個引數是泛型
    Student student=JSON.parseObject(studentJson, Student.class);
    System.out.println(student.getUid()+"\t"+student.getUname()+"\t"+student.getUproject());
    
String jsonArray="[{\"uid\":1,\"uname\":\"小彬彬\",\"uproject\":\"Mathmatics\"}," +
            "{\"uid\":2,\"uname\":\"小小彬\",\"uproject\":\"Mathmatics\"}," +
            "{\"uid\":3,\"uname\":\"小可愛\",\"uproject\":\"Mathmatics\"}]";
    //解析集合
    List<Student> list=JSON.parseArray(jsonArray,Student.class);
    for (Student student:list) {
        System.out.println(student.getUid()+"\t"+student.getUname()+"\t"+student.getUproject());
    }

//把物件改成一個json串

String studentJson="{“uid”:1,“uname”:“小彬彬”,“uproject”:“Mathmatics”}";

    Student student=JSON.parseObject(studentJson, Student.class);

    String str=JSON.toJSONString(student);

    System.out.println(str);

//物件裡有物件 String str="[\n" + " {\n" + " date: “Sep 18 2016”,\n" + " title: “御劍飛仙翱於九天”,\n" + " imgSrc: “/images/post/crab.png”,\n" + " avatar: “/images/avatar/1.png”,\n" + " content: “金庸書的一大特點就是朝代越早武功越高,天龍的朝代算是最早的 因此天龍裡面的功夫都比其他書裡面的厲害,就連降龍十八掌也比射鵰三步曲裡面的厲害,天龍裡面一陽指不是非常厲害,但是到了射鵰就是相當強大的功夫了。但是後面幾部書裡面還是有一些奇人練的一些奇功超越了前人。”,\n" + " reading: “112”,\n" + " collection: “96”,\n" + " headImgSrc: “/images/post/crab.png”,\n" + " author: “林白衣”,\n" + " dateTime: “24小時前”,\n" + " detail: “菊黃蟹正肥,品嚐秋之味。徐志摩把“看初花的荻蘆”和“到樓外樓吃蟹”並列為秋天來杭州不能錯過的風雅之事;用林妹妹的話講是“螯封嫩玉雙雙滿,殼凸紅脂塊塊香”;在《世說新語》裡,晉畢卓更是感嘆“右手持酒杯,左手持蟹螯,拍浮酒船中,便足了一生矣。”漫漫人生長路,美食與愛豈可辜負?於是作為一個吃貨,突然也很想回味一下屬於我的味蕾記憶。記憶中的秋蟹,是家人的味道,瀰漫著濃濃的親情。\n\n是誰來自山川湖海,卻囿於晝夜,廚房與愛? 是母親,深思熟慮,聰明耐心。吃蟹前,總會拿出幾件工具,煞有介事而樂此不疲。告訴我們螃蟹至寒,需要佐以薑茶以祛寒,在配備的米醋小碟裡,亦添入薑絲與紫蘇,前者驅寒後者增香。泡好菊花茶,歲月靜好,我們靜等。”,\n" + " postId: 0,\n" + " music: {\n" + " url: “

http://ws.stream.qqmusic.qq.com/C100003507bR0gDKBm.m4a?fromtag=38",\n" + " title: “夜夜夜夜-齊秦”,\n” + " coverImg: “http://y.gtimg.cn/music/photo_new/T002R150x150M000001TEc6V0kjpVC.jpg?max_age=2592000"\n" + " }\n” + " },\n" + " {\n" + " title: “癸花寶典修煉指北”,\n" + " content: “東方不敗以這種武功竟然輕鬆戰敗令狐沖、任我行、向問天等眾大高手的聯手,可見其威力之大,不愧為天下第一的武功!”,\n" + " imgSrc: “/images/post/bl.png”,\n" + " reading: 62,\n" + " detail: “東方不敗以這種武功竟然輕鬆戰敗令狐沖、任我行、向問天等眾大高手的聯手,可見其威力之大,不愧為天下第一的武功!搜尋 2 九陽真經 解釋:張無忌練成這種武功,以其力敗六大門派中的高手!後來一人單挑少林三大前輩神憎的聯手還能打成平手!而且武當、峨嵋兩派之所以能成為繼少林之後在武林中最有威望的門派,皆因為兩大門派的掌門人都煉過部分的九陽真經,武功高深莫測!因此將九陽真經排在第二無可厚非。 3 易筋經 解釋:這個應該沒意見吧,少林寺至高無尚的武學。 4 俠客島神功 解釋:能夠讓前往俠客島的各個英雄豪傑廢寢忘食地鑽研其中奧祕,並深陷其中難以自撥!最後石破天練成了,在迷糊中竟然輕鬆擊斃兩大島主,可見其威力巨大! 5 六脈神劍 解釋:天龍寺的至高武功,段譽練成後憑其輕鬆擊敗武功高強的鳩摩智和慕容復,且連武功絕頂身經百戰的喬峰都對段家的六脈神劍忌憚三分! 6 九陰真經 解釋:一部博大精深的武學祕籍。郭靖、黃蓉、楊過、小龍女、洪七功、歐陽峰、周伯通等各大高手都相繼修煉過,皆因此武功大增。其誘惑力令人無法抗拒,歐陽峰更因其變得神智不清,且武功更加詭異莫測! 7 獨孤九劍 解釋:在劍法中可排”,\n" + " collection: 92,\n" + " dateTime: “24小時前”,\n" + " headImgSrc: “/images/post/bl.png”,\n" + " author: “迷的城”,\n" + " date: “Nov 20 2016”,\n" + " avatar: “/images/avatar/1.png”,\n" + " postId: 1,\n" + " music: {\n" + " url: “
http://ws.stream.qqmusic.qq.com/C100003GdCmG4NkEOR.m4a?fromtag=38",\n"
+ " title: “鬼迷心竅-李宗盛”,\n” + " coverImg: “http://y.gtimg.cn/music/photo_new/T002R150x150M000002xOmp62kqSic.jpg?max_age=2592000"\n" + " }\n” + " },\n" + " {\n" + " //按住alt + shift + F 可以格式化程式碼樣式\n" + " title: “令狐沖的風流往事”,\n" + " content: “歸妹趨無妄,無妄趨同人,同人趨大有。甲轉丙,丙轉庚,庚轉癸。子醜之交,辰巳之交,午未之交。風雷是一變,山澤是一變,水火是一變。乾坤相激,震兌相激,離巽相激。三增而成五,五增而成九”,\n" + " detail: “1 引言\n\n在我跟學生課後交流時,以及我在知乎上閱讀有關“經濟”問題的論題時,經常會遇到這樣的情況:有些人套用“經濟理論“的知識去解釋現實中發生的經濟事件,結果發現很多事情講不通,或者發現”理論告訴我們的“與現實發生的是相反的。也有學生經常跟我說:經濟學有什麼用?為了說明這個,我經常從兩個方面來進行解釋,嘗試用我個人所擅長的解決問題的視角和他們能夠聽懂的方法來說明經濟學是什麼,它的作用邊界在哪裡:\r\n\n2 ”簡筆素描“與”油畫肖像“我們給人畫肖像畫,可以用簡筆素描,也可以用油畫肖像。油畫肖像可以在最大程度上儲存了人物的各方面的細節和特點,而簡筆素描則忽略了很多細節。儘管簡筆素描忽略了人物的許多細節,但我們仍舊能夠很容易的認出畫中的人物是誰。為什麼?因為這種方法保留了人物最顯著的特徵,以至於我們可以忽略其次要特徵而對人物做出判定。\n\n2.1 ”簡筆素描“對於絕大多數的非經濟學專業大眾而言(經濟學相關專業碩士學歷以上),人們所接觸到的經濟學都是初級微觀經濟學。所謂的初級微觀經濟學,對於經濟問題的”畫法“就是一種”簡筆素描“。比如初級微觀經濟學教材中廣為使用的這種一元一次需求函式:y=bx+a,需求量的唯一變數是產品價格。但僅憑直覺我們就可以斷言,現實中影響需求量的因素絕不止價格這一種,因此我們可以認為這個模型對經濟問題的描述是失真的。然而但這種失真卻是必要的和有意義的,其意義在與它利於揭示價格對於需求的影響,而不在於否定影響需求的其他因素——”,\n" + " imgSrc: “/images/post/sls.jpg”,\n" + " headImgSrc: “/images/post/sls.jpg”,\n" + " reading: 62,\n" + " collection: 92,\n" + " author: “知乎”,\n" + " date: “Nov 12 2016”,\n" + " dateTime: “三天前”,\n" + " avatar: “/images/avatar/3.png”,\n" + " postId: 2,\n" + " music: {\n" + " url: “http://ws.stream.qqmusic.qq.com/C100004HLusI2lLjZy.m4a?fromtag=38",\n" + " title: “女兒情-萬曉利”,\n” + " coverImg: “http://y.gtimg.cn/music/photo_new/T002R150x150M000004Wv5BO30pPc0.jpg?max_age=2592000"\n" + " }\n” + " },\n" + " {\n" + " title: “李尋歡和他身邊的女人”,\n" + " content: “曾是朝廷殿試第三名「探花」,故人稱「小李探花」,而後厭倦功名,棄官歸隱;小李飛刀,例不虛發,百曉生所作《兵器譜》上排名第三。後遭仇家夾擊,重傷不支,被龍嘯雲搭救,與之成為最好的朋友。”,\n" + " imgSrc: “/images/post/xiaolong.jpg”,\n" + " reading: 102,\n" + " detail: “曾是朝廷殿試第三名「探花」,故人稱「小李探花」,而後厭倦功名,棄官歸隱;小李飛刀,例不虛發,百曉生所作《兵器譜》上排名第三。後遭仇家夾擊,重傷不支,被龍嘯雲搭救,與之成為最好的朋友。”,\n" + " collection: 92,\n" + " dateTime: “24小時前”,\n" + " headImgSrc: “/images/post/xiaolong.jpg”,\n" + " author: “貓是貓的貓”,\n" + " date: “Nov 20 2016”,\n" + " avatar: “/images/avatar/5.png”,\n" + " postId: 3,\n" + " music: {\n" + " url: “http://ws.stream.qqmusic.qq.com/C100002mWVx72p8Ugp.m4a?fromtag=38",\n" + " title: “戀戀風塵-老狼”,\n” + " coverImg: “http://y.gtimg.cn/music/photo_new/T002R150x150M000001VaXQX1Z1Imq.jpg?max_age=2592000",\n" + " }\n” + " },\n" + " {\n" + " title: “三生三世十里桃花。”,\n" + " content: “那一世,大荒之中一處荒山,成就她與他的初見。”,\n" + " imgSrc: “/images/post/vr.png”,\n" + " reading: 102,\n" + " detail: “遠古眾神凋零,現今只存了龍族、父神親手創造的第一頭鳳凰折顏和九尾白狐一族。狐帝白止膝下得了四個兒子一個女兒。這唯一的一個女兒長得頗好,卻是個炮灰命。活到十四萬歲的高齡,籠統不過遇得五朵桃花。一朵礙於異族不能通婚,那思慕尚處於萌芽期,便被該桃花的爹孃終結了。一朵誤以為她是個男兒身,糾結於這段斷袖情,待出現個跟她長得相似的女子,立刻便跟著人跑了。一朵是他爹孃親自做主給她定的親,待到他們家走一趟,卻看上了她的婢女,兩人私奔了。一朵在心底裡暗戀她暗戀了萬兒八千年不敢表白,待鼓起勇氣來表白時,她前未婚夫的爹孃為了補償她,又與她重新結了一門親。行互動。今年晚些時候,Oculus將開始出貨類似的手部控制產品Oculus Touch。10月,索尼也將開始出貨配備兩個PlayStation Move手部控制器的PS VR。Leap Motion甚至更進一步:利用感測器來追蹤手指和手部的運動。”,\n" + " collection: 26,\n" + " dateTime: “24小時前”,\n" + " headImgSrc: “/images/post/vr.png”,\n" + " author: “夜華”,\n" + " date: “Nov 20 2016”,\n" + " avatar: “…/…/…/images/avatar/3.png”,\n" + " postId: 4,\n" + " music: {\n" + " url: “http://ws.stream.qqmusic.qq.com/C100000Zn0vS4fKKo8.m4a?fromtag=38",\n" + " title: “沉默是金-張國榮”,\n” + " coverImg: “http://y.gtimg.cn/music/photo_new/T002R150x150M000003at0mJ2YrR2H.jpg?max_age=2592000"\n" + " }\n” + " },\n" + " {\n" + " title: “誰讓呂布半夜嬌喘”,\n" + " content: “三英戰呂布是用的什麼姿勢”,\n" + " imgSrc: “/images/iqiyi.png”,\n" + " reading: 96,\n" + " detail: “三英戰呂布壁畫“三英戰呂布”是長篇歷史小說《三國演義》中的一個故事情節,出自第五回“發矯詔諸鎮應曹公 破關兵三英戰呂布”。故事背景為曹操聯合十八路諸侯討伐董卓,上將呂布一連打敗眾將之後,劉備、關羽、張飛三兄弟在虎牢關與呂布大戰的故事。見於《三國演義》第五回發矯詔諸鎮應曹公 破關兵三英戰呂布。“三英”指劉備(字玄德)、關羽(字雲長)、張飛(字翼德)。”,\n" + " collection: 26,\n" + " dateTime: “21小時前”,\n" + " headImgSrc: “/images/iqiyi.png”,\n" + " author: “深白色”,\n" + " date: “Nov 20 2016”,\n" + " avatar: “…/…/…/images/avatar/5.png”,\n" + " postId: 5,\n" + " music: {\n" + " url: “http://ws.stream.qqmusic.qq.com/C100002I8eGJ28BI17.m4a?fromtag=38",\n" + " title: “朋友-譚詠麟”,\n” + " coverImg: “http://y.gtimg.cn/music/photo_new/T002R150x150M000004eGsCN3SUheO.jpg?max_age=2592000"\n" + " }\n” + " },\n" + “]”; List ebooks=JSON.parseArray(str, Ebook.class); for (int i=0;i<ebooks.size();i++){ System.out.print(ebooks.get(i).getDate()+"\t"+ebooks.get(i).getTitle()+ “\t”+ebooks.get(i).getAvatar()+"\t"+ebooks.get(i).getImgSrc()+"\t"); for (Music musics:ebooks.get(i).getMusic()) { System.out.println(musics.getTitle()+"\t"+musics.getCoverImg()+"\t"+musics.getUrl()); System.out.println(); } }

//用Gson進行集合解析 TypeToken轉換器 public static void main(String[] args) { String studentJson="[{“uid”:1,“uname”:“小彬彬”,“uproject”:“Mathmatics”}," + “{“uid”:2,“uname”:“小小彬”,“uproject”:“Mathmatics”},” + “{“uid”:3,“uname”:“小可愛”,“uproject”:“Mathmatics”}]”; //用Gson進行集合解析 TypeToken轉換器 Gson gson=new Gson(); List list= gson.fromJson(studentJson,new TypeToken<List>(){}.getType()); for (Student student1:list) { System.out.println(student1.getUid()+"\t"+student1.getUname()+"\t"+student1.getUproject()); }

**//把集合轉換成Json串**
    String str=gson.toJson(list);
    System.out.println(str);
}

ajax 非同步處理, 區域性重新整理 用於web中 index.jsp

//get方法傳送時 <%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

//post方法傳送時 <%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

UserServlet.java

public class UserServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    doPost(req,resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    req.setCharacterEncoding("utf-8");
    resp.setContentType("text/html;charset=utf-8");

    String userName= req.getParameter("name");

    boolean flag=false;
    if (userName.equals("ajax")){
        flag=true;
    }else{
        flag=false;
    }
    PrintWriter out= resp.getWriter();
    out.print(flag);
    out.flush();
    out.close();
}