json解析和junit单元测试

json解析

1.添加依赖

首先需要向pom.xml中导入依赖gson或fastjson,其中fastjson是阿里提供的后后面要用到JSON.parseObject时需要这个依赖,gson里没有。

<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.8</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.75</version>
        </dependency>

2.json

JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度。
JSON其实就是一串字符串 只不过元素会使用特定的符号标注。

1 .[]中括号代表的是一个数组;
2. {}大括号代表的是一个对象
3. 双引号“”表示的是属性值
4 .冒号:代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型。

所以 {“name”: “Michael”} 可以理解为是一个包含name为Michael的对象

而[{“name”: “Michael”},{“name”: “Jerry”}]就表示包含两个对象的数组

当然了,你也可以使用{“name”:[“Michael”,“Jerry”]}来简化上面一部,这是一个拥有一个name数组的对象

3.简单json解析例子(gson解析)

首先看一个HashMap集合和josn输出结果

import java.util.HashMap;

/**
 * @Author : ld
 * @Description :
 * @ClassName : JsonDemo1
 * @Date : 2021/9/10 19:50
 * @Version : 1.0
 */
public class JsonDemo1 {
    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();
        map.put("age","19");
        System.out.println(map);

        String josnStr="{\"age\":19}";
        System.out.println(josnStr);
    }
}

在这里插入图片描述

gson解析

import com.google.gson.Gson;
import java.util.HashMap;

/**
 * @Author : ld
 * @Description :
 * @ClassName : JsonDemo
 * @Date : 2021/9/10 9:40
 * @Version : 1.0
 */
public class JsonDemo {
    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();
        String str = "{\"id\":\"1001\",\"name\":\"李四\",\"gender\":\"男\",\"age\":28}";
        System.out.println(str);
        //josn解析成hashMap
//        Gson gson = new Gson();
//        HashMap hashMap = gson.fromJson(str, map.getClass());
//        System.out.println(hashMap.get("age"));

        //json解析成Java对象
//        Gson gson = new Gson();
//        Student student = gson.fromJson(str, Student.class);
//        System.out.println(student.getAge());

        //转为json格式
        Gson gson = new Gson();
        Student student = new Student("1002", "罗晶晶", "女", 22);
        String s = gson.toJson(student);
        System.out.println(s);
    }
}

4.fastjson解析

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

/**
 * @Author : ld
 * @Description :
 * @ClassName : JsonDemo2
 * @Date : 2021/9/10 19:53
 * @Version : 1.0
 */
public class JsonDemo2 {
    public static void main(String[] args) {
        String str = "{\"id\":\"1001\",\"name\":\"李四\",\"gender\":\"男\",\"age\":28}";
//        JSONObject jo=JSON.parseObject(str);
//        Object id = jo.get("id");
//        System.out.println(id);
        Student student = JSON.parseObject(str, Student.class);
        System.out.println(student.getName());

    }

}

上面所需的Student类如下(需要lombok这个插件)

import lombok.*;

/**
 * @Author : ld
 * @Description :
 * @ClassName : Student
 * @Date : 2021/9/10 19:44
 * @Version : 1.0
 */
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Student {
    private String id;
    private String name;
    private String gender;
    private int age;
}

junit单元测试

在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。 程序单元是应用的最小可测试部件。简单来说,就是测试数据的稳定性是否达到程序的预期
在Junit单元测试中,有一个@Before注解,是用作资源的申请。也就是被@Before注解修饰的的方法会在测试方法之前自动执行。所以,我们可以去定义一个init方法,去初始化这个创建对象的过程。这就是@Before注解的作用!
有些应用场景,比如IO流的读写操作。如果我们要测试此代码,是需要一个关闭流的过程,通过我们关闭流使用finally块来保证最后流的关闭操作。这时,我们在Junit单元测试中,有一个@After注解,是用作资源的关闭。也就是说被@After注解修饰的方法会在测试方法之后自定执行。所以,我们在特定需要保证最后关闭、销毁资源的时候,可以去定义一个close方法,去关闭或销毁资源。这就是@After注解的作用!

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

/**
 * @Author : ld
 * @Description :
 * @ClassName : JunitDemo
 * @Date : 2021/9/10 10:29
 * @Version : 1.0
 */
public class JunitDemo {
    @Test
    public void login(){
        System.out.println("登录");
    }
    @Before
    public void register(){
        System.out.println("注册");
    }
    @After
    public void end(){
        System.out.println("结束");
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值