如何在笔记视图中根据 JSON 中的某些属性进行搜索



>假设我有一个 NotesDocument,其中包含一个名为 "someJSONObject" 的属性,具有以下值:

"{
 "someObject": 
  {
   "objId": "someId"
   "Object_Name": "objName",
   "Alternative_Name" : "altName",
   "Alias_Name" : "alias"
  }
}"

我的问题是我如何让"objId"属性以这种方式在 Notes View 中使用它,以便我能够将其用作搜索条件。只有"简单函数","字段","公式"可用。我怎样才能在那里写它,而不是仅仅为了排序目的而写重复字段?

这里有一些行可以用公式来做: 首先用@Explode将值拆分成一个数组,然后找到带有"objID"的行/行并从中获取值。如果 JSON 中有多个 objID- 标签,则此代码甚至有效。

_allVals := @Explode( someJSONObject; @Newline );
REM "Depending of the origin of your data, you need to replace @NewlIne by @Char( 10 ) , @Char( 13 ) or a combination of them";
_objIDString := @Trim( @Right( _allVals ) ; {"objId": } ) );
_objID := @LeftBack( @Right( _objIDString ; {"} ) ; {"} );
_objID

只有一个评论:保存后,大括号将被"替换,并且它们中的所有"都将被"\"掩盖。

然后,此代码:@Right( _objIDString ; {"} )将如下所示@Right( _objIDString ; """ )

这样做是为了向下兼容,因为旧版本的笔记不理解大括号。

您已经在项目中使用了 JSON LotusScript 类。

创建一个 LotusScript 代理程序

  • 使用 JSON 字段在所有文档上运行,并且
  • 在JSON LotusScript类的帮助下提取所需的值,并
  • 将它们放在单独的文档字段中
  • 可以在视图的列中使用

如果您已经使用一些 LotusScript 代码编写了 JSON 字段,则可以在此处添加字段分隔。

最新更新