
fastjson是阿里做的国有开源Java工具包,用于将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。
Maven依赖引入:
<!-- http://repo1.maven.org/maven2/com/alibaba/fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version><scope>${scope}</scope></dependency>
对象与字符串之间的互转;
// 将对象转换成为字符串String str = JSON.toJSONString(infoDo);// 字符串转换成为对象InfoDo infoDo = JSON.parseObject(strInfoDo, InfoDo.class);
对象集合与字符串之间的互转;
// 将对象集合转换成为字符串String users = JSON.toJSONString(users);// 将字符串转换成为对象集合List<User> userList = JSON.parseArray(userStr, User.class);
字符串互转JSONObject;
// String转Json对象JSONObject jsonObject = JSONObject.parseObject(jsonString);// json对象转stringJSONObject jsonObject = JSONObject.parseObject(str);//json对象转字符串String jsonString = jsonObject.toJSONString();
map与字符串之间互转;
// 字符串转mapJSONObject jsonObject = JSONObject.parseObject(str);Map<String,Object> map = (Map<String,Object>)jsonObject;// //json对象转Map// map转字符串String jsonString = JSON.toJSONString(map);
Map转Json对象;
// map转json对象Map<String,Object> map = new HashMap<>();map.put("age", 24);map.put("name", "cool_summer_moon");JSONObject json = new JSONObject(map);// json对象转MapMap<String,Object> map = (Map<String,Object>)jsonObject;
- 案例
JSON数组形式字符串转换为List
import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import java.util.List;import java.util.Map;public class JsonToMapTest {public static void main(String[] args){String strArr = "[{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}," +"{\"00\":\"zhangsan\",\"11\":\"lisi\",\"22\":\"wangwu\",\"33\":\"maliu\"}]";//第一种方式List<Map<String,String>> listObjectFir = (List<Map<String,String>>) JSONArray.parse(strArr);System.out.println("利用JSONArray中的parse方法来解析json数组字符串");for(Map<String,String> mapList : listObjectFir){for (Map.Entry entry : mapList.entrySet()){System.out.println( entry.getKey() + " " +entry.getValue());}}//第二种方式List<Map<String,String>> listObjectSec = JSONArray.parseObject(strArr,List.class);System.out.println("利用JSONArray中的parseObject方法并指定返回类型来解析json数组字符串");for(Map<String,String> mapList : listObjectSec){for (Map.Entry entry : mapList.entrySet()){System.out.println( entry.getKey() + " " +entry.getValue());}}//第三种方式JSONArray listObjectThir = JSONArray.parseArray(strArr);System.out.println("利用JSONArray中的parseArray方法来解析json数组字符串");for(Object mapList : listObjectThir){for (Object entry : ((Map)mapList).entrySet()){System.out.println(((Map.Entry)entry).getKey() + " " +((Map.Entry)entry).getValue());}}//第四种方式List listObjectFour = JSONArray.parseArray(strArr,Map.class);System.out.println("利用JSONArray中的parseArray方法并指定返回类型来解析json数组字符串");for(Object mapList : listObjectFour){for (Object entry : ((Map)mapList).entrySet()){System.out.println(((Map.Entry)entry).getKey() + " " +((Map.Entry)entry).getValue());}}//第五种方式JSONArray listObjectFifth = JSONObject.parseArray(strArr);System.out.println("利用JSONObject中的parseArray方法来解析json数组字符串");for(Object mapList : listObjectFifth){for (Object entry : ((Map)mapList).entrySet()){System.out.println(((Map.Entry)entry).getKey() + " " +((Map.Entry)entry).getValue());}}//第六种方式List listObjectSix = JSONObject.parseArray(strArr,Map.class);System.out.println("利用JSONObject中的parseArray方法并指定返回类型来解析json数组字符串");for(Object mapList : listObjectSix){for (Object entry : ((Map)mapList).entrySet()){System.out.println(((Map.Entry)entry).getKey() + " " +((Map.Entry)entry).getValue());}}//第七种方式JSONArray listObjectSeven = JSON.parseArray(strArr);System.out.println("利用JSON中的parseArray方法来解析json数组字符串");for(Object mapList : listObjectSeven){for (Object entry : ((Map)mapList).entrySet()){System.out.println(((Map.Entry)entry).getKey() + " " +((Map.Entry)entry).getValue());}}//第八种方式List listObjectEigh = JSONObject.parseArray(strArr,Map.class);System.out.println("利用JSON中的parseArray方法并指定返回类型来解析json数组字符串");for(Object mapList : listObjectEigh){for (Object entry : ((Map)mapList).entrySet()){System.out.println(((Map.Entry)entry).getKey() + " " +((Map.Entry)entry).getValue());}}}}
