首页 > 解决方案 > 如何处理json配置中的条件管理器

问题描述

我们有这样的Java逻辑,我们想通过json条件管理器来实现:

((eConsentDate == null) || (!(eConsentDate == null) && !(leSentDate == null) && !(leReceivedDate == null) &&(leReceivedDate.after(currentDate))) ||(!(eConsentDate == null) && !(leSentDate == null) && !(leReceivedDate == null) && (leReceivedDate.before(currentDate) || (leReceivedDate.equals(currentDate)) && !(cdSentDate == null) &&!(cdReceivedDate == null) && (cdReceivedDate.after(currentDate))))

我写过这样的json条件管理器

{
  "conditionsList": [
    {
      "conditionName": "eConscentDate",
      "conditions": [
        {
          "condition": "(eSignDisclosuresDetails.eConsentDate == null)",
          "true": {
            "count": "1"
          },
          "false": null
        },
        {
          "condition": "((eSignDisclosuresDetails.eConsentDate != null) && (eSignDisclosuresDetails.leSentDate != null) && (eSignDisclosuresDetails.leReceivedDate != null)&& (eSignDisclosuresDetails.leReceivedDate >(currentDate.getTime())))",
          "true": {
            "count": "1"
          },
          "false": null
        },
        {
          "condition": "((eSignDisclosuresDetails.eConsentDate != null) && (eSignDisclosuresDetails.leSentDate != null) && (eSignDisclosuresDetails.leReceivedDate != null) && ((eSignDisclosuresDetails.leReceivedDate.getTime().before(currentDate.getTime())) ||(eSignDisclosuresDetails.leReceivedDate.equals(currentDate))) && (eSignDisclosuresDetails.cdSentDate != null) && (eSignDisclosuresDetails.cdReceivedDate != null) && (eSignDisclosuresDetails.cdReceivedDate.after(currentDate))))",
          "true": {
            "count": "1"
          },
          "false": {
            "count": "0"
          }
        }
      ]
    }
  ]
}

但问题是在json中实现(leReceivedDate.after(currentDate)),(cdReceivedDate.after(currentDate)),(leReceivedDate.equals(currentDate)这些字段。

虽然解析它的时间显示未解析的访问方法。

标签: javajsonformatlogicachievements

解决方案


推荐阅读