Java的FastJSON学习笔记 - SpringBoot 和FastJson 的JSON数据的操作方法

Java的FastJSON学习笔记 - 关于转换JSON数组的操作方法

简介

在写Spring Boot 项目途中有对于数据的JSON数据有一个特殊的需求,将JSON数组进行JSONObjectJSONArray 相关互转操作,对于FastJSON不了解的伙伴可以看看我FastJSON详解

业务分析

业务

Layui用户数据页需要一个JSON文件进行读写操作,以便通过后台进行处理。

分析

Layui的后台数据需要JSON文件进行读取,Springboot 联合 Mybatis-plus 进行一个Dao层数据交互,FastJSON负责JSON相关操作,最后Layui将JSON数据进行读取控制。

核心思路

Layui 数据是在 admin/api/xxx.json读取,后台相关数据Service及Mapper已经封装完毕后,通过queryList拿到Dao数据,进行一个IO操作,最后拿到JSONObject进行数据控制。

代码

IOUtils.java


    /**
     * 定义一个写入数据文件的方法
     *
     * @return
     */

    public static boolean writeFileData(File file, String data) {
        try {
            Files.write(Paths.get(file.getPath()),data.getBytes(StandardCharsets.UTF_8), StandardOpenOption.APPEND);
            return true;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return false;
    }

    /** 把一个List<Object> 的集合获取数据
     *
     * @param index index
     * @param objects List对象
     *
     * @return 一个JSONObject
     */
    public static JSONObject parseListJSONObject(List<?> objects,int index){
//        先定义JSONArr 把List<? > 转化成JSONString
        JSONArray jsonArray = JSON.parseArray(JSON.toJSONString(objects));
        return (JSONObject) jsonArray.get(index);
    }

    /** 利用迭代储存所有jsonObject的数据
     *
     * @param objects List object
     * @return jsonObject的数据
     */
    public static List<JSONObject> parseListObject(List<?> objects){
        List<JSONObject> jsonObjects = new ArrayList<>();
        Iterator<Object> jsonArray = JSON.parseArray(JSON.toJSONString(objects)).stream().iterator();
        while(jsonArray.hasNext()){
            JSONObject nextJSONObject = (JSONObject) jsonArray.next();
            jsonObjects.add(nextJSONObject);
        }
        return jsonObjects;
    }


    /** 生成一个显示数据的Json文件
     * @param json type
     * @return true
     */

    public static boolean createDaoJson(EntityJson json,Object[] obj){
        String property = System.getProperty("user.dir");
        String path = property + "/src/main/resources/static/admin/api/" + json.getName() + ".json";
        File file = new File(path);
        try {
            if(file.exists()){
            }else {
                file.createNewFile();
            }

        }catch (Exception e){
            e.printStackTrace();
        }
        String jsonStr = JSON.toJSONString(obj);
        List<Object> jsonObject = JSON.parseArray(jsonStr,Object.class);
        List<?> jsons = parseListObject(jsonObject);
        System.out.println("Json Iterator:" + jsons.toString()) ;
        writeFileData(file,jsonObject.toString());
        return true;
    }

UserController.java


    /** 查询所有用户信息
     *
     * @return 用户信息列表
     */
    @RequestMapping("/queryList")
    private ApiResult queryList(){
        IOUtils.createDaoJson(EntityJson.USER,userService.queryList().toArray());
        return new ApiResult(ApiResult.ON_SUCCESS,ApiResult.SUCCESS_MESSAGE,userService.queryList());

    }

结果

console
在这里插入图片描述

结束语

JSONArray and JSONObject 相互转换是非常简单的,将一个List<?>
进行转换只需要通过FastJson.parseObject(FastJson.toJSONString(List<?>)) 就可以拿到。

有错误之处欢迎指出,谢谢!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 是一个基于 Spring 的轻量级框架,可以快速搭建基于 Spring 的应用程序。而 Fastjson 是一个高性能的 Java 序列化和反序列化库,可以处理复杂的 JSON 数据。 如果想要在 Spring Boot 中自定义 Fastjson 作为 JSON 消息转换器,可以按照以下步骤进行操作: 首先,在 pom.xml 文件中引入 Fastjson 的依赖,可以通过以下代码来添加依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.78</version> </dependency> ``` 然后,在 Spring Boot 的配置类中配置 Fastjson 作为 JSON 消息转换器。可以通过以下代码来实现: ```java @Configuration public class FastjsonConfig { @Bean public HttpMessageConverters fastjsonHttpMessageConverter() { FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); converter.setDefaultCharset(Charset.forName("UTF-8")); List<MediaType> supportedMediaTypes = new ArrayList<>(); supportedMediaTypes.add(MediaType.APPLICATION_JSON); converter.setSupportedMediaTypes(supportedMediaTypes); FastJsonConfig config = new FastJsonConfig(); config.setSerializerFeatures(SerializerFeature.PrettyFormat); converter.setFastJsonConfig(config); return new HttpMessageConverters(converter); } } ``` 最后,在 Spring Boot 的主类中加上 @EnableWebMvc 注解,启用自定义的 JSON 消息转换器。 通过以上步骤,就成功地使用了 Spring Boot 自定义 Fastjson 作为 JSON 消息转换器。这样可以方便地处理 JSON 数据,提升了系统的性能和效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值