This commit is contained in:
wenchengyao 2024-07-04 11:13:31 +08:00
parent bb461bd12c
commit ecdc49d93c
2 changed files with 7 additions and 7 deletions

View File

@ -15,12 +15,11 @@ package com.antgroup.openspg.reasoner.udf.builtin.udf;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONPath; import com.alibaba.fastjson.JSONPath;
import com.alibaba.fastjson.JSONValidator;
import com.antgroup.openspg.reasoner.udf.model.UdfDefine; import com.antgroup.openspg.reasoner.udf.model.UdfDefine;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.alibaba.fastjson.JSONValidator;
public class JsonStringGet { public class JsonStringGet {
@ -48,7 +47,7 @@ public class JsonStringGet {
public Object jsonStrGet(String plainJson, String jsonPath) { public Object jsonStrGet(String plainJson, String jsonPath) {
try { try {
// 可能存在传入的plainJson为null的情况 // 可能存在传入的plainJson为null的情况
if (plainJson == null ){ if (plainJson == null) {
return ""; return "";
} }
Object jsonObject = parseJson(plainJson); Object jsonObject = parseJson(plainJson);
@ -62,7 +61,6 @@ public class JsonStringGet {
return ""; return "";
} }
return ""; return "";
} }
@UdfDefine(name = "get_rdf_property") @UdfDefine(name = "get_rdf_property")

View File

@ -88,7 +88,8 @@ public class UdfTest {
@Test @Test
public void testJsonGet3() { public void testJsonGet3() {
UdfMng mng = UdfMngFactory.getUdfMng(); UdfMng mng = UdfMngFactory.getUdfMng();
String params = "[{\"v\": {\"v1\": \"111\", \"v2\": \"222\"}}, {\"k\": {\"k1\": \"333\", \"k2\": \"444\"}}]"; String params =
"[{\"v\": {\"v1\": \"111\", \"v2\": \"222\"}}, {\"k\": {\"k1\": \"333\", \"k2\": \"444\"}}]";
IUdfMeta udfMeta = IUdfMeta udfMeta =
mng.getUdfMeta("json_get", Lists.newArrayList(KTString$.MODULE$, KTString$.MODULE$)); mng.getUdfMeta("json_get", Lists.newArrayList(KTString$.MODULE$, KTString$.MODULE$));
Object rst = udfMeta.invoke(params, "$.k.k2"); Object rst = udfMeta.invoke(params, "$.k.k2");
@ -98,7 +99,8 @@ public class UdfTest {
@Test @Test
public void testJsonGet4() { public void testJsonGet4() {
UdfMng mng = UdfMngFactory.getUdfMng(); UdfMng mng = UdfMngFactory.getUdfMng();
String params = "[{\"案由\": \"打架斗殴\", \"日期\": \"20240101\"}, {\"案由\": \"制造毒品\", \"日期\": \"20240202\"}]"; String params =
"[{\"案由\": \"打架斗殴\", \"日期\": \"20240101\"}, {\"案由\": \"制造毒品\", \"日期\": \"20240202\"}]";
IUdfMeta udfMeta = IUdfMeta udfMeta =
mng.getUdfMeta("json_get", Lists.newArrayList(KTString$.MODULE$, KTString$.MODULE$)); mng.getUdfMeta("json_get", Lists.newArrayList(KTString$.MODULE$, KTString$.MODULE$));
Object rst = udfMeta.invoke(params, "$[案由 rlike '(.*)毒品(.*)'].案由"); Object rst = udfMeta.invoke(params, "$[案由 rlike '(.*)毒品(.*)'].案由");