【问题标题】:How do I make search based on some property in JSON in Notes View如何在 Notes 视图中基于 JSON 中的某些属性进行搜索
【发布时间】:2018-03-22 07:39:59
【问题描述】:

假设我有一个带有名为 "someJSONObject" 的属性的 NotesDocument,其值如下:

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

我的问题是如何让"objId" 属性以这种方式在Notes 视图中使用它,因此我可以将其用作搜索标准。只有“简单函数”、“字段”、“公式”可用。我怎样才能把它写在那里,而不是为了排序而写重复的字段?

【问题讨论】:

    标签: json lotus-notes lotusscript notesview


    【解决方案1】:

    这里有一些用公式来做的行:首先用@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 ; "\"" )

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

    【讨论】:

    • 你不知道如何在这里获取每个“expertID”吗?在 allExperts 数组中? {“allAssignedExperts”:{“assignmentDate”:“someDateHere”,“allExperts”:[{“expertId”:“someId”,“expertNameSurname”:“someNameHere”,“didExceedDeadline”:“假”,“isLead”:“假" }, { "expertId" : "anotherId", "expertNameSurname" : "anotherNameHere", "didExceedDeadline" : "true", "isLead" : "true" } } } 请使用这个服务让它看起来很漂亮@987654321 @
    • 如果我的 json 对象没有 newLine 分隔符怎么办?
    【解决方案2】:

    您已经在您的project 中使用JSON LotusScript Classes

    创建一个 LotusScript 代理

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-30
      • 1970-01-01
      • 2013-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多