您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页json 简单使用

json 简单使用

来源:五一七教育网

(方便自己用)

Jackson

Jackson将对象转为json字符串

        ObjectMapper mapper = new ObjectMapper().findAndRegisterModules();
        Book book = new Book();
        book.setId(1);
        book.setPublisher("北京");
        book.setNownum(22);
        book.setCreatetime(new Timestamp(System.currentTimeMillis()));
        book.setAuthor("jack");

        List<Book> list = new ArrayList<>();
        list.add(book);

        Map map = new ConcurrentHashMap();
        map.put( "name", "json" );
        map.put( "bool", Boolean.TRUE );
        map.put( "int", new Integer(1) );
        map.put( "arr", new String[]{"a","b"} );
        map.put( "func", "func2" );
        map.put( "book", book );

        String json = mapper.writeValueAsString(list);
        System.out.println(json);
// .findAndRegisterModules();当有时间时,需要加上这个
// 时间属性 需要加上注解 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "Asia/Shanghai")
// 当需要属性被忽略时 需要注解 @JsonIgnore

Jackson将json字符串转为对象

        String json = "{\"id\":1,\"author\":\"jack\",\"publisher\":\"北京\",\"nownum\":22,\"createtime\":\"2023-10-10 14:42:56\"}";
        ObjectMapper mapper = new ObjectMapper().findAndRegisterModules();
        Book book = mapper.readValue(json, Book.class);
//        System.out.println(book);

        String jsonMap = "{\"arr\":[\"a\",\"b\"],\"bool\":true,\"func\":\"func2\",\"book\":{\"id\":1,\"author\":\"jack\",\"publisher\":\"北京\",\"nownum\":22,\"createtime\":\"2023-10-10 14:47:56\"},\"name\":\"json\",\"int\":1}";
        Map map = mapper.readValue(jsonMap, new TypeReference<Map<String,Object>>() {});
//        System.out.println(map);

        String jsonList = "[{\"id\":1,\"author\":\"jack\",\"publisher\":\"北京\",\"nownum\":22,\"createtime\":\"2023-10-10 15:00:21\"}]";
        List<Book> list = mapper.readValue(jsonList, new TypeReference<List<Book>>() {
        });
//        System.out.println(list);
        String jsonArray = "[{\"xxx\":\"yyy\",\"bookname\":\"三国\",\"author\":\"罗贯中\",\"date\":\"2023年10月09日 17时09分20秒\",\"localDateTime\":\"2023-10-09 17:09:20\"}]";

        //忽略字段设置
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        Book[] books = mapper.readValue(jsonArray, Book[].class);
        for (Book book1 : books) {
            System.out.println(book1);
        }
//        System.out.println(books);
// 当json字符串内有这个属性,实体类里没有这个属性需要使用这个,进行忽略
// mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

FastJson

FastJson将对象转为字符串

        Book book = new Book();
        book.setId(1);
        book.setPublisher("北京");
        book.setNownum(22);
        book.setCreatetime(new Timestamp(System.currentTimeMillis()));
        book.setAuthor("jack");

        List<Book> list = new ArrayList<>();
        list.add(book);

        Map map = new ConcurrentHashMap();
        map.put( "name", "json" );
        map.put( "bool", Boolean.TRUE );
        map.put( "int", new Integer(1) );
        map.put( "arr", new String[]{"a","b"} );
        map.put( "func", "func2" );
        map.put( "book", book );
        String jsonString = JSONObject.toJSONString(book);
        System.out.println(jsonString);
// 时间属性需要 @JSONField(format = "yyyy-MM-dd HH:mm:ss")
// 当需要属性被忽略时
// deserialize = false 不开启反序列化(json反序列化)
// serialize = false 不开启序列化(json序列化)
// @JSONField(deserialize = false,serialize = false)

FastJson将json字符串转为对象

        String json = "{\"id\":1,\"author\":\"jack\",\"publisher\":\"北京\",\"nownum\":22,\"createtime\":\"2023-10-10 14:42:56\"}";
        Book book = JSONObject.parseObject(json, Book.class);
        System.out.println(book);


        String jsonArray = "[{\"xxx\":\"yyy\",\"bookname\":\"三国\",\"author\":\"罗贯中\",\"date\":\"2023年10月09日 17时09分20秒\",\"localDateTime\":\"2023-10-09 17:09:20\"}]";
        Book[] books1 = JSONObject.parseObject(jsonArray, Book[].class);
        for (Book book1 : books1) {
            System.out.println(book1);
        }
        String jsonList = "[{\"id\":1,\"author\":\"jack\",\"publisher\":\"北京\",\"nownum\":22,\"createtime\":\"2023-10-10 15:00:21\"}]";
        List<Book> list = JSONObject.parseObject(jsonList, new TypeReference<List<Book>>() {
        });
        System.out.println(list);
// TypeReference注意使用
/*@JSONField(format = "yyyy-MM-dd HH:mm:ss") 注解主要用于指定在将 Java 对象序列化为 JSON 时的日期格式,而不是在将 JSON 转换为 Java 对象时。这个注解在对象反序列化时通常不会生效,因为 JSON 字符串已经包含了日期信息,而不需要进一步的格式化。*/

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务