Java中常用解析工具jackson及fastjson的使用

一、maven安装jackson依赖

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.12.3</version>
</dependency>

二、Jackson的使用

实体类转化JSON

把实体类转化为JSON格式数据,返回给前端

创建 ObjectMapper obj = new ObjectMapper(); 对象,对象的 writeValueAsString 方法 会把一个实体类(必须有get、set方法)转化为JSON对象。

package com.lxc.springboot.controller;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController // 这个类下边的所有方法,都会返回json,不会返回一个视图!
public class Json {

    @RequestMapping(value = "/json")
    public String json() throws Exception{
        User user = new User("吕星辰", "888", 20);
        ObjectMapper obj = new ObjectMapper();
        String jsonObject = obj.writeValueAsString(user);
        return jsonObject;
    }
    // 为测试方便,在这里写一个实体类
    public static class User {
        private String userName;

        public String getUserName() {
            return userName;
        }

        public void setUserName(String userName) {
            this.userName = userName;
        }

        public String getPassword() {
            return password;
        }

        public void setPassword(String password) {
            this.password = password;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }

        private String password;
        private int age;
        public User(String userName, String password, int age) {
            this.userName = userName;
            this.password = password;
            this.age = age;
        }
    }
}

测试:

集合转化JSON

前端结果是:一个数组,里边是一个个对象

package com.lxc.springboot.controller;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RestController
public class Json {

    @RequestMapping(value = "/json")
    public String json() throws Exception{
        // 创建一个集合
        List<User> userList = new ArrayList<>();
        for(int i = 0; i < 3; i ++) {
            userList.add(new User("用户名"+i, "密码"+i, 20+i));
        }
        ObjectMapper obj = new ObjectMapper();
        String jsonObject = obj.writeValueAsString(userList);
        return jsonObject;
    }
    // 上边有实体类,这里省略
}

测试:

Map转化JSON

@RestController
public class Json {

    @RequestMapping(value = "/json")
    public String json() throws Exception{
        // 创建一个Map
        Map<String, Object> map = new HashMap<>();
        map.put("name", "测试名");
        map.put("age", 20);
        ObjectMapper obj = new ObjectMapper();
        String jsonObject = obj.writeValueAsString(map);
        return jsonObject;
    }
}

前端结果是:对象

new Date() 转化JSON

@RestController
public class Json {

    @RequestMapping(value = "/json")
    public String json() throws Exception{
        Date date = new Date();
        ObjectMapper obj = new ObjectMapper();
        String jsonObject = obj.writeValueAsString(date);
        return jsonObject;
    }
}

前端结果是:时间戳

当然,也可以自定义时间格式

@RestController
public class Json {

    @RequestMapping(value = "/json")
    public String json() throws Exception{
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        String time = sdf.format(date); // "2021-06-27 05:19:33"
        ObjectMapper obj = new ObjectMapper();
        String jsonObject = obj.writeValueAsString(time);
        return jsonObject;
    }
}

封装

package com.lxc.springboot.utils;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

import java.text.SimpleDateFormat;

public class JavaUtils {
    /**
     *  使用下边方法需要导入依赖包:
     * <dependency>
     *     <groupId>com.fasterxml.jackson.core</groupId>
     *     <artifactId>jackson-databind</artifactId>
     *     <version>2.12.3</version>
     * </dependency>
     *
     * @param object 集合(List)、Map(HashMap)、对象(new Date)
     * @param format 时间格式化  yyyy-MM-dd hh:mm:ss
     * @return JSON格式化的字符串
     */
    public static String getJson(Object object, String format) {
        ObjectMapper objectMapper = new ObjectMapper();
        // 不使用时间戳的方式
        objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
        // 自定义时间格式
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        // 设置时间格式化
        objectMapper.setDateFormat(sdf);
        try {
            String jsonValue = objectMapper.writeValueAsString(object);
            return jsonValue;
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return null;
    }
    public static String getJson(Object object) {
        return getJson(object, "yyyy-MM-dd hh:mm:ss");
    }
}

二、FastJson的使用

使用maven导入依赖包

<!--下边依赖跟aop没关系,只是项目中用到了 JSONObject,所以引入fastjson-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.70</version>
</dependency>

常用方法:

(1)JSON.toJSONString(obejct) - java对象转JSON字符串

(2)JSON.parseObject(string, User.class) - JSON字符串转java对象

使用

@RestController
public class Json {

    @RequestMapping(value = "/json")
    public String json() throws Exception{
        List<User> userList = new ArrayList<>();
        userList.add(new User("1", "1", 20));
        String res = JSON.toJSONString(userList);
        return res;
    }

到此这篇关于Java中常用解析工具jackson及fastjson的使用的文章就介绍到这了,更多相关jackson和fastjson的使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java基础之FastJson详解

    一.fastJson将json格式字符串转化成List集合 注:json格式字符串必须符合数组型格式如[{"a":a},{"b":b}] 场景一:前端向后台传递数组格式的json字符串,如何转化成List集合 List<AccountBean> readJson2List =JSON.parseArray(json, AccountBean.class)注意这里是Bean.class而不是List.class @Test public void read

  • Java的Jackson库中复杂对象集合的几种简单转换

    话不多说,请看代码: package com; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.List; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxm

  • java如何利用FastJSON、Gson、Jackson三种Json格式工具自定义时间序列化

    Java处理JSON数据有三个比较流行的类库FastJSON.Gson和Jackson. Jackson Jackson是由其社区进行维护,简单易用并且性能也相对高些.但是对于复杂的bean转换Json,转换的格式鄙视标准的Json格式.PS:Jackson为Spring MVC内置Json解析工具 Gson Gson是由谷歌公司研发的产品,目前是最全的Json解析工具.完全可以将复杂的类型的Json解析成Bean或者Bean到Json的转换 FastJson Fastjson是一个Java语言

  • Java FastJson使用教程

    Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象. Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象. Fastjson 源码地址:https://github.com/alibaba/fastjson Fastjson 扩展阅读:https://www.w3cschool.cn/fastjson/ 一.Fastjson 特性 提供服务器端.安卓客户端两种解析工具,性能表

  • Java中Jackson快速入门

    Java生态圈中有很多处理JSON和XML格式化的类库,Jackson是其中比较著名的一个.虽然JDK自带了XML处理类库,但是相对来说比较低级,使用本文介绍的Jackson等高级类库处理起来会方便很多. 引入类库 由于Jackson相关类库按照功能分为几个相对独立的,所以需要同时引入多个类库,为了方便我将版本号单独提取出来设置,相关Gradle配置如下. ext { jacksonVersion = '2.9.5' } dependencies { compile group: 'com.fa

  • Java中常用解析工具jackson及fastjson的使用

    一.maven安装jackson依赖 <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version

  • java中常用工具类之字符串操作类和MD5加密解密类

    java中常用的工具类之String和MD5加密解密类 我们java程序员在开发项目的是常常会用到一些工具类.今天我分享一下我的两个工具类,大家可以在项目中使用. 一.String工具类 package com.itjh.javaUtil; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import

  • Java中常用的Lambda表达式案例解析

    目录 1.ForEach 2.Collect 3.Filter 4.Map 5.MapToInt 6.Distinct 7.Sorted 8.groupingBy 9.FindFirst 10.Reduce 11.Peek 12.Limit 13.Max,Min 总结 前言: 我们日常工作中,Lambda 使用比较多的场景,就是集合类下的 Lambda 流操作,往往几行代码可以帮助我们实现复杂代码 接下来我们把 Lambda 流的常用方法用案列讲解一下. 1.ForEach 集合的遍历forEa

  • Java中常用的日期类图文详解

    目录 前言 Date 为什么Date的大部分方法被弃用 注释 翻译 目前可用方法的测试示例 可用方法 示例 Date小结 Calendar 简单介绍 常用的方法 获取实例 获取日期里的信息 日期的加减与滚动 日期的设置 测试实例代码 DateFormat与SimpleDateFormat DateFormat 常用方法 测试实例 SimpleDateFormat 主要方法 测试示例 编写一个简单的日期工具类 工具类 测试示例 总结 前言 本文将分析Java中的Date.Calendar.Date

  • Java中Json解析的方法分析

    本文实例讲述了Java中Json解析的方法.分享给大家供大家参考,具体如下: 首先准备一个JSON格式的字符串 * String JsonStr = "{object:{persons:" + "[{name:'呵呵',image:'http://10.0.159.132:8080/Web/s1.png'}," + "{name:'哈哈',image:'http://10.0.159.132:8080/Web/s1.png'}," + "

  • java中封装JDBC工具类的实例分析

    对于能够重复使用的代码,我们最好的方法是对它们进行封装,然后在下次使用的使用就可以直接调用了.本篇所要提到的是JDBC工具类,相信大家在学习java时都接触过.那么对于封装它的方法,本篇先对工具类进行简单的说明,列出有关的封装步骤,然后带来相关的实例. 1.说明 在java开发过程中,代码中时常用到一些Scanner.Random一样的类,他们是键盘录入,生成随机数的类,像一个工具一样,在java中被称为工具类. 2.步骤 封装JDBC工具类 加入获取数据库连接对象的方法 加入释放连接的方法 3

  • 浅析java中常用的定时任务框架-单体

    目录 一.阅读收获 二.本章源码下载 三.Timer+TimerTask 四.ScheduledExecutorService 五.Spring Task 5.1 单线程串行执行-@Scheduled 5.2 多线程并发运行-@Scheduled+配置定时器的程池(推荐) 5.3 多线程并发执行-@Scheduled+@Async+配置异步线程池 5.4 @Scheduled参数解析 六.Quartz 6.1. 创建任务类 6.2. 配置任务描述和触发器 一.阅读收获 1. 了解常用的单体应用定

  • Java中documentHelper解析xml获取想要的数据

    目录 获取单节点数据 获取数组节点数据 webservice接口的入参和出参都是xml格式的数据,网上有很多方法,下面我将使用documentHelper工具来解析xml格式的数据,获取到自己想要的数据 获取单节点数据 假设我们接口调用成功,出参类似以下格式 <treatyroot> <returncode>0000</returncode> <message>接口调用成功</message> </treatyroot> 这是我们就可

  • Java中常用修饰符的使用方法汇总

    修饰符汇总: 一:public protected default private 修饰类,修饰方法,修饰属性,修饰代码块. 类: 顶级类只能用public 修饰,顶级类不能使用private 和protected 修饰. 外部类可以被public修饰或者默认不写,不能用private和protected. 内部类可为静态,可用protected和private修饰. 方法: 通常方法可以被四个访问修饰符修饰,构造方法也可以被四个访问修饰符修饰. 抽象类中的抽象方法不能被private修饰,可以

  • 浅谈Java中常用数据结构的实现类 Collection和Map

    线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构.这些类均在java.util包中.本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类. Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └WeakHashMap Collection接口 Collection是最基本的集合接口,一个C

随机推荐