常见的几种List、Map类型以及对象对应的Json格式

前言

  • 写这篇文章的初衷,是为了自己了解Json格式转换,前端通常会将数据以 JSON 格式传输给后端,后端需要将接收到的 JSON 数据转换为对应的类型。

JSON 数据简介

1、什么是 JSON 数据

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式:key:value 格式。

JSON 采用完全独立于语言的文本格式,这些特性使 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

2、JSON 字符串

JSON 字符串是一种 JSON 格式的 string 字符串,也就是 JSON 字符串也是 string 类型,只是这种 string 是有格式的,也就是类似 map 的格式【key:value】。

  • JSON 字符串的键必须是字符串(也可以存数值,但是数值存进去,取出来还是 String);
  • JSON 字符串的值可以是:数字(整数或浮点数),字符串(在双引号中),数组(在方括号中),对象(在花括号中),true/false/null。

3、后端 JSONObject 对象

JSONObject 是一种数据结构,可以理解为 JSON 格式的数据结构(key-value 结构),类似于 map,可以使用 put 方法给 JSONObject 对象添加元素。JSONObject 可以很方便的转换成字符串,也可以很方便的把其他对象转换成 JSONObject 对象。

代码

  1. 导入maven依赖,使用的是阿里的fastjson

            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.83</version>
            </dependency>

  2. 实体类

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @ToString
    public class Student {
        private int id;
        private String name;
        private int age;
        private double score;
    }
    

  3. 测试类

    public class Test {
        public static void main(String[] args) {
            // 实体类
            Student s1 = new Student();
            s1.setId(1);
            s1.setName("张三");
            s1.setAge(18);
            s1.setScore(88);
            System.out.println("实体类文本格式:" + s1);
            String s1Json = JSONArray.toJSONString(s1);
            System.out.println("实体类json格式:" + s1Json);
            System.out.println("============================================");
    
            // 整型list
            ArrayList<Integer> ids = new ArrayList<>();
            ids.add(1);
            ids.add(2);
            System.out.println("整型list文本格式:" + ids);
            String idsJson = JSONArray.toJSONString(ids);
            System.out.println("整型list json格式:" + idsJson);
            System.out.println("============================================");
    
            // 字符串类型list
            ArrayList<String> names = new ArrayList<>();
            names.add("张三");
            names.add("李四");
            names.add("王五");
            System.out.println("字符串类型list文本格式: " + names);
            String namesJson = JSONArray.toJSONString(names);
            System.out.println("字符串类型list json格式: " + namesJson);
            System.out.println("============================================");
    
            // 对象型list
            ArrayList<Student> s = new ArrayList<>();
            Student s2 = new Student();
            s2.setId(2);
            s2.setName("李四");
            s2.setAge(20);
            s2.setScore(90);
            s.add(s1);
            s.add(s2);
            System.out.println("对象类型list文本格式:" + s);
            String sJson = JSONArray.toJSONString(s);
            System.out.println("对象类型list json格式:" + sJson);
            System.out.println("============================================");
    
            // 字符串型map
            HashMap<String, String> StringMap = new HashMap<>();
            StringMap.put("id", "1");
            StringMap.put("name", "王五");
            StringMap.put("age", "21");
            StringMap.put("score", "100");
            System.out.println("字符串型map文本格式:" + StringMap);
            String StringMapJson = JSONArray.toJSONString(StringMap);
            System.out.println("字符串型map json格式:" + StringMapJson);
            System.out.println("============================================");
    
            // 对象型map
            HashMap<String, Object> sMap = new HashMap<>();
            sMap.put("s1", s1);
            sMap.put("s2", s2);
            System.out.println("对象型map文本格式:" + sMap);
            String sMapJson = JSONArray.toJSONString(sMap);
            System.out.println("对象型map json格式:" + sMapJson);
            System.out.println("============================================");
    
            // map型list
            ArrayList<Map> MapList = new ArrayList<>();
            MapList.add(sMap);
            System.out.println("map型list文本格式:" + MapList);
            String MapListJson = JSONArray.toJSONString(MapList);
            System.out.println("map型list json格式:" + MapListJson);
        }
    }
    
  4. 运行结果

    实体类文本格式:Student(id=1, name=张三, age=18, score=88.0)
    实体类json格式:{"age":18,"id":1,"name":"张三","score":88.0}
    ============================================
    整型list文本格式:[1, 2]
    整型list json格式:[1,2]
    ============================================
    字符串类型list文本格式: [张三, 李四, 王五]
    字符串类型list json格式: ["张三","李四","王五"]
    ============================================
    对象类型list文本格式:[Student(id=1, name=张三, age=18, score=88.0), Student(id=2, name=李四, age=20, score=90.0)]
    对象类型list json格式:[{"age":18,"id":1,"name":"张三","score":88.0},{"age":20,"id":2,"name":"李四","score":90.0}]
    ============================================
    字符串型map文本格式:{score=100, name=王五, id=1, age=21}
    字符串型map json格式:{"score":"100","name":"王五","id":"1","age":"21"}
    ============================================
    对象型map文本格式:{s1=Student(id=1, name=张三, age=18, score=88.0), s2=Student(id=2, name=李四, age=20, score=90.0)}
    对象型map json格式:{"s1":{"age":18,"id":1,"name":"张三","score":88.0},"s2":{"age":20,"id":2,"name":"李四","score":90.0}}
    ============================================
    map型list文本格式:[{s1=Student(id=1, name=张三, age=18, score=88.0), s2=Student(id=2, name=李四, age=20, score=90.0)}]
    map型list json格式:[{"s1":{"age":18,"id":1,"name":"张三","score":88.0},"s2":{"age":20,"id":2,"name":"李四","score":90.0}}]
    
    
    

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值