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

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

时间:2024-08-22 08:54:14浏览次数:11  
标签: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://www.cnblogs.com/houbbBlogs/p/18372939

相关文章

  • 【JavaScript】字符串01 - padStart() 和 padEnd()
    在JavaScript中,我们可以使用padStart()和padEnd()方法来完成字符串补全。下面给大家介绍一下这两个方法的使用。padStart()方法用于在当前字符串的前面填充指定的字符,直到字符串的长度达到指定的长度。padEnd()方法用于在当前字符串的后面填充指定的字符,直到字符串的长......
  • Java——三个关键字:static
    static关键字在Java中,static是一个关键字,用于修饰类的成员(变量、方法等)。静态成员属于类本身而不是类的实例,这意味着每个类都有唯一的静态变量副本,所有该类的对象共享这个副本,而不论创建了多少个对象。有static修饰的代码和没有static修饰的代码的区别:有static修饰的代码属......
  • P10892 题解
    思路考虑贪心策略。当剩下的猫猫数量为偶数的时候,直接取出\(\large\frac{n}{2}\)只猫猫即可。否则当剩下的猫猫数量为奇数的时候,则要尽可能保持第二天猫猫的数量为偶数。则要考虑\(n-\large\frac{n-1}{2}\)和\(n-\large\frac{n+1}{2}\)哪个是偶数。第二条化简一下就......
  • 银河麒麟系统V10(arm版)安装Mysql-5.7.29说明
    #银河麒麟系统适配#随着2024年微软全球蓝屏丑闻的出现,系统安全越来越重要。目前很多企业开始尝试国产化操作系统上,本文介绍如何在国产化银河麒麟系统V10(arm)版上安装mysql。本资源使用的是arm版本的Mysql-5.7.29离线安装包,能够在arm版国产化银河麒麟系统上进行安装,并配置防火......
  • MySQL 源码|51 - 语法解析:高级表达式
    目录文档:MySQL源码|源码剖析文档目录源码位置(版本=MySQL8.0.37):sql/sql_yacc.yy前置文档:MySQL源码|50-语法解析:基础表达式(simple_expr)在梳理了基础表达式simple_expr之后,我们就可以梳理更高级的表达式了。高级表达式的相关关系如下图所示:其中绿色节点为本章节梳......
  • Java毕设项目II基于Java新闻稿件管理系统
    目录一、前言二、技术介绍三、系统实现四、论文参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言在信息爆炸的时代,新闻稿件的高效管理与快......
  • MySQL 源码|50 - 语法解析:基础表达式(simple_expr)
    目录文档:MySQL源码|源码剖析文档目录源码位置(版本=MySQL8.0.37):sql/sql_yacc.yy前置文档:MySQL源码|37-语法解析:聚集函数MySQL源码|38-语法解析:窗口函数MySQL源码|43-语法解析:关键字函数MySQL源码|44-语法解析:非关键字函数MySQL源码|45-语法解析:通用函数MySQL......
  • YSP_refs_cn_2010_其他炎性关节炎及银屑病
    rhTNFR-Fc中文文献-2010-其他炎性关节炎及银屑病 幼年特发性关节炎 病例对照[1][1]李玲,张晓,崔阳,等.重组人Ⅱ型肿瘤坏死因子受体-抗体Fc融合蛋白对幼年特发性关节炎患者细胞因子和骨代谢的影响.中华医学杂志,2010,90(31):2205-2208.浏览文摘 单臂观察[2,3......
  • 移动互联 实训DAY10
    1.flex布局Flex是FlexibleBox的缩写,意为"弹性布局",⽤来为盒状模型提供最⼤的灵活性。任何⼀个容器都可以指定为Flex布局。容器属性:flex-flowflex-directionflex-wrapjustify-contentalign-itemsalign-content 元素属性:orderflex-growflex-shrinkflex-bas......
  • 初识JavaScript
    1.什么是JavaScriptJavaScript(JS)是⼀种具有函数优先的轻量级,解释型或即时编译型的编程语⾔。虽然它是作为开发Web⻚⾯的脚本语⾔⽽出名的,但是它也被⽤到了很多⾮浏览器环境中,例如Node.js、ApacheCouchDB和AdobeAcrobat。JavaScript是⼀种基于原型编程、多范式的......