【黑马程序员】阿里巴巴FastJson对数据的常用操作

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

黑马程序员成都中心编著【黑马程序员】阿里巴巴FastJson对数据的常用操作Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSONParse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。阿里巴巴的开源地址为:工程可以在pom文件加入依赖dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.21/version/dependencyfastjson入口类是com.alibaba.fastjson.JSON,主要的API是JSON.toJSONString,和parseObject。常用的序列化操作都可以在JSON类上的静态方法直接完成。//把JSON文本parse为JSONObject或者JSONArraypublicstaticfinalObjectparse(Stringtext);//把JSON文本parse成JSONObjectpublicstaticfinalJSONObjectparseObject(Stringtext);//把JSON文本parse为JavaBeanpublicstaticfinalTTparseObject(Stringtext,ClassTclazz);//把JSON文本parse成JSONArraypublicstaticfinalJSONArrayparseArray(Stringtext);//把JSON文本parse成JavaBean集合publicstaticfinalTListTparseArray(Stringtext,ClassTclazz);//将JavaBean序列化为JSON文本publicstaticfinalStringtoJSONString(Objectobject);//将JavaBean序列化为带格式的JSON文本publicstaticfinalStringtoJSONString(Objectobject,booleanprettyFormat);//将JavaBean转换为JSONObject或者JSONArray。publicstaticfinalObjecttoJSON(ObjectjavaObject);黑马程序员成都中心编著//序列化:StringjsonString=JSON.toJSONString(obj);//反序列化:VOvo=JSON.parseObject(...,VO.class);//泛型反序列化:importcom.alibaba.fastjson.TypeReference;ListVOlist=JSON.parseObject(...,newTypeReferenceListVO(){});下面贴出自己代码,相当于是FastJson使用操作的一个集合,基本上满足开发中绝大部分的json解析和拼接了。packageheima.itcast.demo;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;importcom.alibaba.fastjson.TypeReference;importheima.itcast.demo.model.Book;importjava.util.*;publicclassTest{publicstaticvoidmain(String[]args){//String转化为实体类BookStrToObject();//String转化为jsonObjectStrToJsonObject();//实体类转换为json//多个实体类转换为json数组形式的string//String转化为ListBookStrToListObject();//String转化为数组//String转化为ArrayListStrToArrayList();//map和json互相转换mapTo();}/***String转化为实体类Book*/publicstaticvoidStrToObject(){StringBuildersb=newStringBuilder();sb.append({);sb.append(\name\:\教父三部曲\,);黑马程序员成都中心编著sb.append(\author\:\马里奥·普佐\,);sb.append(\price\:\100\);sb.append(});Bookbook=JSON.parseObject(sb.toString(),Book.class);System.out.println(书名:+book.getName()+;作者:+book.getAuthor()+;价格:+book.getPrice());}/***String转化为jsonObject*/publicstaticvoidStrToJsonObject(){StringBuildersb=newStringBuilder();sb.append({);sb.append(\name\:\教父三部曲\,);sb.append(\author\:\马里奥·普佐\,);sb.append(\price\:\100\);sb.append(});JSONObjectjsonObj=JSON.parseObject(sb.toString());for(Map.EntryString,Objectentry:jsonObj.entrySet()){System.out.println(entry.getKey()+--+entry.getValue());}}/***实体类转换为json*多个实体类转换为json数组形式的string*String转化为ListBook*/publicstaticvoidStrToListObject(){ListBookbookList=newArrayList();Bookbook1=newBook(教父三部曲,马里奥·普佐,100);Bookbook2=newBook(天才在左疯子在右,高铭,30);bookList.add(book1);bookList.add(book2);//实体类转换为jsonStringbook1Str=JSON.toJSONString(book1);//多个实体类转换为json数组形式的stringStringbookStr=JSON.toJSONString(bookList);//String转化为ListBook黑马程序员成都中心编著ListBookbookList3=JSON.parseArray(bookStr,Book.class);}/***String转化为数组*String转化为ArrayList*/publicstaticvoidStrToArrayList(){StringBuildersb=newStringBuilder();sb.append([{);sb.append(\name\:\教父三部曲\,);sb.append(\author\:\马里奥·普佐\,);sb.append(\price\:\100\);sb.append(}]);//String转化为数组Book[]arrBook=JSON.parseObject(sb.toString(),newTypeReferenceBook[](){});ListBooklist=Arrays.asList(arrBook);for(inti=0;iarrBook.length;i++){System.out.println(arrBook[i].toString());}//String转化为ArrayListArrayListBookbookList=JSON.parseObject(sb.toString(),newTypeReferenceArrayListBook(){});for(Bookbook:bookList){System.out.println(book.toString());}}/***map和json互相转换*/publicstaticvoidmapTo(){MapString,Stringmap=newHashMap();map.put(name,教父三部曲);map.put(author,马里奥·普佐);map.put(price,100);//map转换为jsonStringjson=JSON.toJSONString(map);黑马程序员成都中心编著//json转换为mapMapmap1=JSON.parseObject(json);System.out.println(map1.toString());MapString,Stringmap2=(MapString,String)JSON.parse(json);}}附Book类代码packageheima.itcast.demo.model;publicclassBook{privateStringname;privateStringauthor;privateintprice;publicBook(){}publicBook(Stringname,Stringauthor,intprice){this.name=name;this.author=author;this.price=price;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringgetAuthor(){returnauthor;}publicvoidsetAuthor(Stringauthor){this.author=author;}publicintgetPrice(){黑马程序员成都中心编著returnprice;}publicvoidsetPrice(intprice){this.price=price;}}

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功