首页 > 编程知识 正文

fastjson使用详解,fastjson使用jackson的JsonProperty

时间:2023-05-04 06:26:52 阅读:199095 作者:1812

此文为转载,方便自己查看,原文地址:

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类上的静态方法直接完成。

// 把JSON文本parse为JSONObject或者JSONArray public static final Object parse(String text); // 把JSON文本parse成JSONObject public static final JSONObject parseObject(String text); // 把JSON文本parse为JavaBean public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse成JSONArray public static final JSONArray parseArray(String text); //把JSON文本parse成JavaBean集合 public static final <T> List<T> parseArray(String text, Class<T> clazz); // 将JavaBean序列化为JSON文本 public static final String toJSONString(Object object); // 将JavaBean序列化为带格式的JSON文本 public static final String toJSONString(Object object, boolean prettyFormat); //将JavaBean转换为JSONObject或者JSONArray。 public static final Object toJSON(Object javaObject); //序列化:String jsonString = JSON.toJSONString(obj);//反序列化:VO vo = JSON.parseObject("...", VO.class);//泛型反序列化:import com.alibaba.fastjson.TypeReference;List<VO> list = JSON.parseObject("...", new TypeReference<List<VO>>() {});

下面贴出自己代码,相当于是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); }}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。