请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

小新hxh
注册会员   /  发表于:2025-5-27 15:39  /   查看:153  /  回复:9
50金币


我该如何解析@uniparm 我要取里面一些参数值
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

您好,如果使用非基本的包,需要如下操作: 1.在配置文件 的ReportingWorker添加 dll和命名空间 2.将引用的包放在: C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.** 3.在如下地址中配置: Wyn安装目录\ReportingWorker\appseting.json CSharp的Assemblies和Namespaces添加dll和命名空间,即可使用其他的dll。 然后我这里简单写了一个: 引用的包也在上面,Newtonsoft.Json.dll 报表中使用: {Code.ParseJson ...

9 个回复

倒序浏览
最佳答案
最佳答案
Felix.LiWyn认证
超级版主   /  发表于:2025-5-27 15:39:54
来自 6#
您好,如果使用非基本的包,需要如下操作:
1.在配置文件 的ReportingWorker添加

  1. <ReportingWorker>
  2.       <UserFunctionsReferences>
  3.   <CSharp>
  4.     <Assemblies>
  5.       <sys:string>System.Collections.dll</sys:string>
  6.       <sys:string>System.Linq.dll</sys:string>
  7.       <sys:string>Newtonsoft.Json.dll</sys:string>
  8.     </Assemblies>
  9.     <Namespaces>
  10.       <sys:string>System.Collections.Generic</sys:string>
  11.       <sys:string>System.Linq</sys:string>
  12.       <sys:string>Newtonsoft.Json</sys:string>
  13.     </Namespaces>
  14.   </CSharp>
  15.   <VisualBasic>
  16.     <Assemblies>
  17.       <sys:string></sys:string>
  18.     </Assemblies>
  19.     <Namespaces>
  20.       <sys:string></sys:string>
  21.   </Namespaces>
  22.   </VisualBasic>
  23. </UserFunctionsReferences>
  24.     </ReportingWorker>
复制代码
dll和命名空间
2.将引用的包放在:
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.**
3.在如下地址中配置: Wyn安装目录\ReportingWorker\appseting.json
  1. "UserFunctionsReferences": {
  2.     "CSharp": {
  3.       "Assemblies": [
  4.         "System.Collections.dll",
  5.         "System.Linq.dll",
  6.         "Newtonsoft.Json.dll"
  7.       ],
  8.       "Namespaces": [
  9.         "System.Collections.Generic",
  10.         "System.Linq",
  11.         "Newtonsoft.Json"
  12.       ]
  13.     },
  14.     "VisualBasic": {
  15.       "Assemblies": [],
  16.       "Namespaces": [
  17.         "System.Math",
  18.         "System.Convert",
  19.         "Microsoft.VisualBasic.Conversion",
  20.         "Microsoft.VisualBasic.Interaction",
  21.         "Microsoft.VisualBasic.Information",
  22.         "Microsoft.VisualBasic.Constants",
  23.         "Microsoft.VisualBasic.DateAndTime",
  24.         "Microsoft.VisualBasic.Strings"
  25.       ]
  26.     }
  27.   }
复制代码

CSharp的Assemblies和Namespaces添加dll和命名空间,即可使用其他的dll。
然后我这里简单写了一个:
  1. /// <function name="ParseJsonValue">
  2. /// <culture>
  3. /// <label>ParseJsonValue</label>
  4. /// <syntax>ParseJsonValue(string jsonString, string jsonPath)</syntax>
  5. /// <description>解析 JSON 字符串中指定 JSON Path 对应的值</description>
  6. /// <example>ParseJsonValue("{"a":1}", "$.a")</example>
  7. /// </culture>
  8. /// </function>
  9. public string ParseJsonValue(string jsonString, string jsonPath)
  10. {
  11.     try
  12.     {
  13.         // 使用 Newtonsoft.Json.JsonConvert.DeserializeObject 解析 JSON 字符串
  14.         var obj = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString);

  15.         // 将解析后的对象转换为 JObject 以便使用 SelectToken 方法
  16.         var jObj = obj as Newtonsoft.Json.Linq.JObject;

  17.         // 使用 SelectToken 方法根据 JSON Path 获取对应的值
  18.         var token = jObj.SelectToken(jsonPath);

  19.         // 如果 token 不为空,返回其值的字符串表示;否则返回 null 或抛出异常,视需求而定
  20.         return token?.ToString();
  21.     }
  22.     catch (Exception ex)
  23.     {
  24.         // 可选:记录错误信息或处理异常
  25.         throw ex;
  26.     }
  27. }
复制代码
引用的包也在上面,Newtonsoft.Json.dll
报表中使用:
{Code.ParseJsonValue("{'a':1}", "$.a")}
预览效果:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
小新hxh
注册会员   /  发表于:2025-5-27 15:41:41
2#
本帖最后由 小新hxh 于 2025-5-27 15:46 编辑

例如 epid的value  或者parameter的objectvalue
想在表格单元格的表达式中解析
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2025-5-27 17:42:49
3#
抱歉,内置现在确实没有办法直接解析一个json路径,如果要再报表里面解析的话,可能需要写一个自定义表达式。

https://www.grapecity.com.cn/sol ... t-doc-content_title
再脚本里面看能怎么解析json,然后根据path返回自己想要的,这个您可以试试,
回复 使用道具 举报
小新hxh
注册会员   /  发表于:2025-5-27 21:13:05
4#
Felix.Li 发表于 2025-5-27 17:42
抱歉,内置现在确实没有办法直接解析一个json路径,如果要再报表里面解析的话,可能需要写一个自定义表达式 ...

好的 我先写一下,然后粘贴到帖子来
回复 使用道具 举报
小新hxh
注册会员   /  发表于:2025-5-27 21:55:50
5#
本帖最后由 小新hxh 于 2025-5-27 22:02 编辑

好像自定义函数里面没有引用  System.Text.Json

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
小新hxh
注册会员   /  发表于:2025-6-4 15:21:49
7#

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2025-6-4 18:07:31
8#

您这个图片是使用的时候报错了吗?
麻烦您说一下您的报错场景和使用,只有一张图的话,不知道您是什么问题。
回复 使用道具 举报
小新hxh
注册会员   /  发表于:2025-6-5 10:14:26
9#
Eden.Sun 发表于 2025-6-4 18:07
您这个图片是使用的时候报错了吗?
麻烦您说一下您的报错场景和使用,只有一张图的话,不知道您是什么问 ...

我还是按照另外一个版主设置的自定义函数 json解析 从引用dll 到设置namespace 再到自定义函数,你看最佳答案
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2025-6-5 18:58:23
10#
我看您的报错是 添加程序集 mscorlib的引用,这个得看您的函数里面用到了什么包了。我上面给咱们的那个函数,其实没用到这个的,。
或者我猜测您单纯就是基础包的没有做命名指定,类似:
System.Object
这么写
而不是直接写:
Object
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部