首页 > 编程语言 >字符串值提取工具-10-java 执行表达式引擎

字符串值提取工具-10-java 执行表达式引擎

时间:2024-08-25 13:23:50浏览次数:15  
标签:10 调用 提取 字符串 java 工具 表达式

值提取系列

字符串值提取工具-01-概览

字符串值提取工具-02-java 调用 js

字符串值提取工具-03-java 调用 groovy

字符串值提取工具-04-java 调用 java? Janino 编译工具

字符串值提取工具-05-java 调用 shell

字符串值提取工具-06-java 调用 python

字符串值提取工具-07-java 调用 go

字符串值提取工具-08-java 通过 xml-path 解析 xml

拓展阅读

如果你对表达式引擎不是很熟悉,建议学习:

java 表达式引擎概览-00-chat

java 表达式引擎概览-01-overview

java 表达式引擎概览-02-google 表达式引擎 Aviator 入门介绍

场景

我们希望通过 java 执行 json-path 解析 json。

核心实现

public class ValueExtractionAviator extends AbstractValueExtractionAdaptor<Map<String, Object>> {


    @Override
    protected Map<String, Object> prepare(ValueExtractionContext context) {
        return context.getDataMap();
    }

    @Override
    protected Object evaluate(Map<String, Object> prepareObject, String script, ValueExtractionContext context) {
        return AviatorEvaluator.execute(script, prepareObject);
    }

}

测试例子

int[] a = {1, 2, 3, 4, 5};
    Map<String, Object> env = new HashMap<>(1);
    env.put("a", a);
    //求数组长度
    AviatorEvaluator.execute("count(a)", env);
    Map<String, Object> result = ValueExtractionBs.newInstance()
            .scripts(Arrays.asList("count(a)"))
            .valueExtraction(ValueExtractions.aviator())
            .dataMap(env)
            .extract();
    Assert.assertEquals(5L, result.get("count(a)"));.assertEquals("{$.store.book[1].author=Evelyn Waugh}", result);
}

标签:10,调用,提取,字符串,java,工具,表达式
From: https://blog.csdn.net/ryo1060732496/article/details/141411602

相关文章

  • Java Comparable接口-自然排序
    什么是Comparable排序接口?Comparable接口是Java提供的一个用于对象排序的机制,它允许类的实例自然排序,即定义对象的默认排序顺序。Comparable接口概述Comparable接口是属于Java.lang包。它主要作用是提供一个统一的比较方法,用于对类的对象进行排序。作用:自然排序:是......
  • 每隔10分钟定时关闭并重启夸克网盘电脑客户端,防止下载器卡死宕机死机停止下载的AutoH
     每隔10分钟定时关闭并重启夸克网盘电脑客户端,防止下载器卡死宕机死机停止下载的AutoHotkey脚本2024年8月14日 最近在MicrosoftWindowsServer2022戴尔服务器电脑上下载夸克网盘里的文件夹时发现一个问题,过一段时间后用向日葵控控A2连接服务器发现夸克客户端下载速度为......
  • Java计算机毕业设计实体店管理系统(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着消费市场的日益繁荣与消费者需求的多元化,实体店作为传统零售业态,正面临着前所未有的挑战与机遇。在电商冲击下,实体店需通过数字化转型来提升顾客......
  • java计算机毕业设计校园零食售卖系统小程序(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着数字化时代的到来,校园生活日益便捷化、智能化。在校园环境中,学生对于零食的需求量大且多样化,传统的线下零食售卖方式已难以满足学生随时随地、个......
  • java计算机毕业设计洗衣服务平台(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:随着现代生活节奏的加快,人们对便捷、高效服务的需求日益增长,尤其是在日常生活琐事如衣物清洗方面。传统洗衣店受限于营业时间、地理位置及排队等候等......
  • Qt (10)【Qt窗口 —— 如何在窗口中创建浮动窗口和状态栏】
    阅读导航引言一、如何在窗口中创建浮动窗口1.浮动窗口的创建2.设置停靠的位置二、如何在窗口中创建状态栏1.状态栏的创建2.在状态栏中显示实时消息3.在状态栏中显示永久消息4.调整显示消息的位置,并加上进度条引言在上一篇文章中,我们一同探索了Qt窗口设计中的......
  • 你还不知道的提升情商的10个诀窍!
    情商的形成过程情商EQ形成于婴幼儿时期,成型于儿童和青少年阶段,它主要是在后天的人际互动中培养起来的。青春期是一个人的黄金时代,因为这是一个人走向成人的一个过渡时期。在这个时期,其学习和发展任务是非常重要的。但是,中学生由于面临着生理上、心理上的急剧变化,还有学业上的......
  • win10系统c++与opencv 依赖环境配置
    一、VSC++配置opencv库1、下载opencv(https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.3.0/)2、在官网下载opencv3.3.0.exe文件然后解压到D盘D:\opencv3、配置系统环境:①添加环境变量:控制面板-系统-高级系统设置-环境变量-系统变量Path中添加下......
  • 基于STM32F103的FreeRTOS系列(十一)·信号量·二值信号量与计数信号量详细使用以及移植
    目录1. 信号量简介1.1 同步和互斥1.1.1 同步1.1.2 互斥1.1.3 总结1.2 分类1.2.1 二值信号量1.2.2 计数信号量1.2.3 互斥信号量1.2.4 递归信号量2. 信号量控制块3. 常用信号量API函数3.1 创建信号量函数3.1.1 创建二值信号量 xSe......
  • Java线程池详解
    Java线程池解析在Java中有两种方式创建线程池,一种是直接使用Executors工具类创建预先定义好的线程池。一共有以下四种线程池newCachedThreadPool:可缓存的无边界的线程池,最大线程数Integer.MAX_VALUEpublicstaticExecutorServicenewCachedThreadPool(){returnnewTh......