[SpringMVC]JSON的格式

该篇博客展示了如何在Java中使用Jackson和Fastjson库将对象、集合以及日期转换为JSON字符串,包括使用ObjectMapper进行格式化输出和工具类的复用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录结构

package com.zlc.controller;

import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.zlc.pojo.User;
import com.zlc.utils.JsonUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Controller
//相当于ResponseBody 不走视图解析器,直接返回字符串,二选一
//@RestController
public class UserController {

    @RequestMapping("/j1")
    @ResponseBody //不会走视图解析器,直接返回字符串
    public String json1(){

        //创建一个对象
        User user=new User("赵路仓",21,"男");
        //对象转成字符串
        return user.toString();
    }

    @RequestMapping("/j2")
    @ResponseBody //不会走视图解析器,直接返回字符串
    public String json2() throws JsonProcessingException {
        //jackson
        ObjectMapper mapper=new ObjectMapper();

        //创建一个集合
        List<User> userList =new ArrayList<User>();

        //创建对象
        User user1=new User("1号",21,"男");
        User user2=new User("2号",21,"男");
        User user3=new User("3号",21,"男");
        User user4=new User("4号",21,"男");

        //将对象添加到集合内
        userList.add(user1);
        userList.add(user2);
        userList.add(user3);
        userList.add(user4);

        String str=mapper.writeValueAsString(userList);
        return str;
    }

    @RequestMapping("/j3")
    @ResponseBody //不会走视图解析器,直接返回字符串
    public String json3() throws JsonProcessingException {
        //jackson
        ObjectMapper mapper=new ObjectMapper();
        //创建一个对象
        User user=new User("赵路仓",21,"男");
        String str=mapper.writeValueAsString(user);
        return str;
    }

    //纯Java方式
    @RequestMapping("/j4")
    @ResponseBody //不会走视图解析器,直接返回字符串
    public String json4() throws JsonProcessingException {
        //jackson
        ObjectMapper mapper=new ObjectMapper();

        //时间
        Date date=new Date();

        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        //时间戳
        return mapper.writeValueAsString(sdf.format(date));
    }

    //Mapper格式方式
    @RequestMapping("/j5")
    @ResponseBody //不会走视图解析器,直接返回字符串
    public String json5() throws JsonProcessingException {
        //jackson
        ObjectMapper mapper=new ObjectMapper();

        //使用ObjectMapper来格式化输出
        mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        mapper.setDateFormat(sdf);

        //时间
        Date date=new Date();

        //时间戳
        return mapper.writeValueAsString(sdf.format(date));
    }

    //工具类复用
    @RequestMapping("/j6")
    @ResponseBody //不会走视图解析器,直接返回字符串
    public String json6() throws JsonProcessingException {

       Date date=new Date();

       return JsonUtils.getJson(date);
    }

    //fastjson,阿里开源,Java对象转换为字符串
    @RequestMapping("/j7")
    @ResponseBody //不会走视图解析器,直接返回字符串
    public String json7() throws JsonProcessingException {

        //创建一个集合
        List<User> userList =new ArrayList<User>();

        //创建对象
        User user1=new User("1号",21,"男");
        User user2=new User("2号",21,"男");
        User user3=new User("3号",21,"男");
        User user4=new User("4号",21,"男");

        //将对象添加到集合内
        userList.add(user1);
        userList.add(user2);
        userList.add(user3);
        userList.add(user4);

        String str= JSON.toJSONString(userList);
        return str;
    }

}
package com.zlc.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private String name;
    private int age;
    private String sex;
}
package com.zlc.utils;

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

import java.text.SimpleDateFormat;

public class JsonUtils {
    public static String getJson(Object object){
        return getJson(object,"yyyy-MM-dd HH:mm:ss");
    }


    public static String getJson(Object object,String dateFormat){

        ObjectMapper mapper=new ObjectMapper();

        //使用ObjectMapper来格式化输出
        mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        mapper.setDateFormat(sdf);

        try {
            return mapper.writeValueAsString(object);
        }catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return null;
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值