此文为转载,方便自己查看,原文地址:
https://blog.csdn.net/xs_challenge/article/details/77456728
Fastjson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. Fastjson can work with arbitrary Java objects including pre-existing objects that you do not have source-code of.
Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。
阿里巴巴的开源地址为:https://github.com/alibaba/fastjson
maven工程可以在pom文件加入依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.21</version></dependency>fastjson入口类是com.alibaba.fastjson.JSON,主要的API是JSON.toJSONString,和parseObject。
常用的序列化操作都可以在JSON类上的静态方法直接完成。
下面贴出自己代码,相当于是FastJson使用操作的一个集合,基本上满足开发中绝大部分的json解析和拼接了。
import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Map.Entry;import org.junit.Test;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.TypeReference;public class FastJson { /** * String转化为实体类Book */ @Test public void StrToObject() { StringBuilder sb = new StringBuilder(); sb.append("{"); sb.append(""name": "教父三部曲","); sb.append(" "author": "xwdm","); sb.append(" "price": "100""); sb.append("}"); Book book = JSON.parseObject(sb.toString(), Book.class); System.out.println(book.toString()); } /** * String转化为jsonObject */ @Test public void StrToJsonObject() { StringBuilder sb = new StringBuilder(); sb.append("{"); sb.append(""name": "教父三部曲","); sb.append(" "author": "xwdm","); sb.append(" "price": "100""); sb.append("}"); JSONObject jsonObj = JSON.parseObject(sb.toString()); for(Map.Entry<String, Object> entry : jsonObj.entrySet()){ System.out.println(entry.getKey()+"--"+entry.getValue()); } } /** * 实体类转换为json * 多个实体类转换为json数组形式的string * String转化为List<Book> */ @Test public void StrToListObject() { List<Book> bookList = new ArrayList<>(); Book book1 = new Book("教父三部曲","xwdm","100") ; Book book2 = new Book("天才在左疯子在右","聪慧的台灯","30") ; bookList.add(book1); bookList.add(book2); //实体类转换为json String book1Str = JSON.toJSONString(book1); //多个实体类转换为json数组形式的string String bookStr = JSON.toJSONString(bookList); //String转化为List<Book> List<Book> bookList3 = JSON.parseArray(bookStr,Book.class); System.out.println(); } /** * String转化为数组 * String转化为ArrayList */ @Test public void StrToArrayList() { StringBuilder sb = new StringBuilder(); sb.append("[{"); sb.append(""name": "教父三部曲","); sb.append(" "author": "xwdm","); sb.append(" "price": "100""); sb.append("}]"); // String转化为数组 Book[] arrBook = JSON.parseObject(sb.toString(),new TypeReference<Book[]>(){}); List<Book> list = Arrays.asList(arrBook); for (int i = 0; i < arrBook.length; i++) { System.out.println(arrBook[i].toString()); } // String转化为ArrayList ArrayList<Book> bookList= JSON.parseObject(sb.toString(),new TypeReference<ArrayList<Book>>(){}); for(Book book : bookList){ System.out.println(book.toString()); } } /** * map和json互相转换 */ @SuppressWarnings("unused") public void mapTo(){ Map<String,String> map = new HashMap<>(); map.put("name", "教父三部曲"); map.put("author", "xwdm"); map.put("price", "100"); //map转换为json String json = JSON.toJSONString(map); //json转换为map Map map1 = JSON.parseObject(json); Map<String,String> map2 = (Map<String,String>)JSON.parse(json); }}