Fastjson - 图1
    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. 对象与字符串之间的互转;

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

      1. // 将对象集合转换成为字符串
      2. String users = JSON.toJSONString(users);
      3. // 将字符串转换成为对象集合
      4. List<User> userList = JSON.parseArray(userStr, User.class);
    3. 字符串互转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();
    4. 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);
    5. 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种方法。

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