首页 > 编程语言 >Java(FastJson) 解析 JSON文件

Java(FastJson) 解析 JSON文件

时间:2023-01-31 20:46:26浏览次数:40  
标签:FastJson username Java isvalid JSON demo1 User password true

依赖

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

JSON文件内容

public class MyJsonUtils {
    String path = "src/main/resources/data/testData.json";

    //获取json文件内容转为json字符串
    public String getJsonString() {
        BufferedReader bufferedReader = null;
        String len = null;
        try {
            bufferedReader = new BufferedReader(new FileReader(path));
           
            while ((len = bufferedReader.readLine()) != null) {
                System.out.println(len);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (bufferedReader != null) {
                try {
                    bufferedReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return len;
    }

    @Test
    public void test1(){
        // Object 对象转 json字符串
        User user = new User();
        user.setIsvalid(true);
        user.setPassword(111L);
        user.setUsername("demo1");
        String s = JSON.toJSONString(user);
        System.out.println(s);
        // result
        // {"isvalid":true,"password":111,"username":"demo1"}
    }

    @Test
    public void test2(){
        // List 对象转 json字符串
        User user1 = new User();
        user1.setIsvalid(true);
        user1.setPassword(111L);
        user1.setUsername("demo1");

        User user2 = new User();
        user2.setIsvalid(true);
        user2.setPassword(111L);
        user2.setUsername("demo1");

        ArrayList<User> users = new ArrayList<>();
        users.add(user1);
        users.add(user2);

        String s = JSON.toJSONString(users);
        System.out.println(s);
        // result
        // [{"isvalid":true,"password":111,"username":"demo1"},{"isvalid":true,"password":111,"username":"demo1"}]
    }

    @Test
    public void test3(){
        // Map 对象转 json字符串
        User user1 = new User();
        user1.setIsvalid(true);
        user1.setPassword(111L);
        user1.setUsername("demo1");

        User user2 = new User();
        user2.setIsvalid(true);
        user2.setPassword(111L);
        user2.setUsername("demo1");

        HashMap<String, User> userMap = new HashMap<>();
        userMap.put("user1",user1);
        userMap.put("user2",user2);


        String s = JSON.toJSONString(userMap);
        System.out.println(s);
        // result
        // {"user1":{"isvalid":true,"password":111,"username":"demo1"},"user2":{"isvalid":true,"password":111,"username":"demo1"}}
    }

    @Test
    public void test4(){
        //  json字符串转Map对象
        String str1 = "{\"user1\":{\"isvalid\":true,\"password\":111,\"username\":\"demo1\"},\"user2\":{\"isvalid\":true,\"password\":111,\"username\":\"demo1\"}}";

        Map<String, User> stringUserMap = JSON.parseObject(str1, new TypeReference<Map<String, User>>() {
        });
        System.out.println(stringUserMap);
        // result
        // {user1=User(username=demo1, password=111, isvalid=true), user2=User(username=demo1, password=111, isvalid=true)}
    }

    @Test
    public void test5(){
        //  json字符串转List对象
        String str1 = "[{\"isvalid\":true,\"password\":111,\"username\":\"demo1\"},{\"isvalid\":true,\"password\":111,\"username\":\"demo1\"}]";

        List<User> users = JSON.parseArray(str1, User.class);
        System.out.println(users);
        // result
        // {user1=User(username=demo1, password=111, isvalid=true), user2=User(username=demo1, password=111, isvalid=true)}
    }

    @Test
    public void test6(){
        //  json字符串转Object对象
        String str1 = "{\"isvalid\":true,\"password\":111,\"username\":\"demo1\"}";

        User user = JSON.parseObject(str1, User.class);
        System.out.println(user);
        // result
        // User(username=demo1, password=111, isvalid=true)

        // 不指定类型,直接根据数据类型强转
        Map<String,Object> object = JSON.parseObject(str1);
        Object username = object.get("username");
        System.out.println(username);
        // result
        // demo1
    }


}

@Data
class User{
    String username;
    Long password;
    Boolean isvalid;

}

标签:FastJson,username,Java,isvalid,JSON,demo1,User,password,true
From: https://www.cnblogs.com/yan061/p/17080698.html

相关文章

  • .net 对接极兔平台 java Base64与.net Base64数据不一致及POST 带header 和body 参数
    近几天对接极兔平台,遇到javaBase64与.netBase64数据不一致及POST带header和body参数的问题,费了一些周折,现在记录下来,供大家参考。1. javaBase64与.netBase64数据......
  • 使用 java.time.LocalDateTime(续):全局返回时间戳给前端
    Java8PostgreSQL14spring-boot-starter-parent2.7.3mybatis-plus-boot-starter3.4.3.4--ben发布于博客园前文:使用java.time.LocalDateTimehttps://www.cnblogs......
  • Java并发JUC——Future和Callable
    Runnable的缺陷不能返回一个返回值也不能抛出checkedExceptionCallable接口类似于Runnable,被其他线程执行的任务Callable接口中只有一个call()方法,和Runnable相比,......
  • Java并发JUC——AQS
    为什么需要AQS锁和协作类有共同点:闸门像ReentrantLock和Semaphore有一些共同点,并且很相似事实上,不仅仅是ReentrantLock和Semaphore,包括CountDownLatch、ReentrantReadW......
  • Java并发JUC——线程池
    前言如果不使用线程池,每个任务都需要新开一个线程处理这样开销太大,我们希望有固定数量的线程来执行任务,这样就避免了反复创建并销毁线程所带来的开销问题为什么要使用......
  • 【简单版】【Java语言刷Leetcode一5道题】Day1
    ......
  • Java并发JUC——synchronized和Lock
    synchronizedsynchronized作用原子性:synchronized保证语句块内操作是原子的。可见性:synchronized保证可见性(通过“在执行unlock之前,必须先把此变量同步回主内存”实......
  • Java并发JUC——Atomic原子类
    什么是原子类原子是不可分割的最小单位,故原子类可以认为其操作都是不可分割一个操作时不可中断的,即便是在多线程的情况下也可以保证原子类的作用和锁类似,是为了保证并发......
  • Java并发JUC——CAS原理
    什么是CAS在计算机科学中,比较和交换(CompareAndSwap)是用于实现多线程同步的原子指令。它将内存位置的内容与给定值进行比较,只有在相同的情况下,将该内存位置的内容修改为......
  • Java并发——final
    什么是不变性(Immutable)如果对象在被创建后,状态就不能被修改,那么它就是不可变的具有不变性的对象一定是线程安全的,我们不需要对其采取任何额外的安全措施,也能保证线程安......