fastjson是阿里做的国有开源Java工具包,用于将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。

Maven依赖引入:

  1. <!-- http://repo1.maven.org/maven2/com/alibaba/fastjson -->
  2. <dependency>
  3. <groupId>com.alibaba</groupId>
  4. <artifactId>fastjson</artifactId>
  5. <version>${fastjson.version}</version>
  6. <scope>${scope}</scope>
  7. </dependency>

对象与字符串之间的互转;

  1. // 将对象转换成为字符串
  2. String str = JSON.toJSONString(infoDo);
  3. // 字符串转换成为对象
  4. InfoDo infoDo = JSON.parseObject(strInfoDo, InfoDo.class);

对象集合与字符串之间的互转;

  1. // 将对象集合转换成为字符串
  2. String users = JSON.toJSONString(users);
  3. // 将字符串转换成为对象集合
  4. List<User> userList = JSON.parseArray(userStr, User.class);

字符串互转JSONObject;

  1. // String转Json对象
  2. JSONObject jsonObject = JSONObject.parseObject(jsonString);
  3. // json对象转string
  4. JSONObject jsonObject = JSONObject.parseObject(str);//json对象转字符串
  5. String jsonString = jsonObject.toJSONString();

map与字符串之间互转;

  1. // 字符串转map
  2. JSONObject jsonObject = JSONObject.parseObject(str);
  3. Map<String,Object> map = (Map<String,Object>)jsonObject;// //json对象转Map
  4. // map转字符串
  5. String jsonString = JSON.toJSONString(map);

Map转Json对象;

  1. // map转json对象
  2. Map<String,Object> map = new HashMap<>();
  3. map.put("age", 24);
  4. map.put("name", "cool_summer_moon");
  5. JSONObject json = new JSONObject(map);
  6. // json对象转Map
  7. Map<String,Object> map = (Map<String,Object>)jsonObject;
  • 案例

    JSON数组形式字符串转换为List>的8种方法。

    ```java 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 {

  1. public static void main(String[] args){
  2. String strArr = "[{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"}," +
  3. "{\"00\":\"zhangsan\",\"11\":\"lisi\",\"22\":\"wangwu\",\"33\":\"maliu\"}]";
  4. //第一种方式
  5. List<Map<String,String>> listObjectFir = (List<Map<String,String>>) JSONArray.parse(strArr);
  6. System.out.println("利用JSONArray中的parse方法来解析json数组字符串");
  7. for(Map<String,String> mapList : listObjectFir){
  8. for (Map.Entry entry : mapList.entrySet()){
  9. System.out.println( entry.getKey() + " " +entry.getValue());
  10. }
  11. }
  12. //第二种方式
  13. List<Map<String,String>> listObjectSec = JSONArray.parseObject(strArr,List.class);
  14. System.out.println("利用JSONArray中的parseObject方法并指定返回类型来解析json数组字符串");
  15. for(Map<String,String> mapList : listObjectSec){
  16. for (Map.Entry entry : mapList.entrySet()){
  17. System.out.println( entry.getKey() + " " +entry.getValue());
  18. }
  19. }
  20. //第三种方式
  21. JSONArray listObjectThir = JSONArray.parseArray(strArr);
  22. System.out.println("利用JSONArray中的parseArray方法来解析json数组字符串");
  23. for(Object mapList : listObjectThir){
  24. for (Object entry : ((Map)mapList).entrySet()){
  25. System.out.println(((Map.Entry)entry).getKey() + " " +((Map.Entry)entry).getValue());
  26. }
  27. }
  28. //第四种方式
  29. List listObjectFour = JSONArray.parseArray(strArr,Map.class);
  30. System.out.println("利用JSONArray中的parseArray方法并指定返回类型来解析json数组字符串");
  31. for(Object mapList : listObjectFour){
  32. for (Object entry : ((Map)mapList).entrySet()){
  33. System.out.println(((Map.Entry)entry).getKey() + " " +((Map.Entry)entry).getValue());
  34. }
  35. }
  36. //第五种方式
  37. JSONArray listObjectFifth = JSONObject.parseArray(strArr);
  38. System.out.println("利用JSONObject中的parseArray方法来解析json数组字符串");
  39. for(Object mapList : listObjectFifth){
  40. for (Object entry : ((Map)mapList).entrySet()){
  41. System.out.println(((Map.Entry)entry).getKey() + " " +((Map.Entry)entry).getValue());
  42. }
  43. }
  44. //第六种方式
  45. List listObjectSix = JSONObject.parseArray(strArr,Map.class);
  46. System.out.println("利用JSONObject中的parseArray方法并指定返回类型来解析json数组字符串");
  47. for(Object mapList : listObjectSix){
  48. for (Object entry : ((Map)mapList).entrySet()){
  49. System.out.println(((Map.Entry)entry).getKey() + " " +((Map.Entry)entry).getValue());
  50. }
  51. }
  52. //第七种方式
  53. JSONArray listObjectSeven = JSON.parseArray(strArr);
  54. System.out.println("利用JSON中的parseArray方法来解析json数组字符串");
  55. for(Object mapList : listObjectSeven){
  56. for (Object entry : ((Map)mapList).entrySet()){
  57. System.out.println(((Map.Entry)entry).getKey() + " " +((Map.Entry)entry).getValue());
  58. }
  59. }
  60. //第八种方式
  61. List listObjectEigh = JSONObject.parseArray(strArr,Map.class);
  62. System.out.println("利用JSON中的parseArray方法并指定返回类型来解析json数组字符串");
  63. for(Object mapList : listObjectEigh){
  64. for (Object entry : ((Map)mapList).entrySet()){
  65. System.out.println(((Map.Entry)entry).getKey() + " " +((Map.Entry)entry).getValue());
  66. }
  67. }
  68. }

} ```