JSON响应IBM BPM

JSON响应IBM BPM,json,ibm-bpm,Json,Ibm Bpm,在我们的环境中,我们必须使用JSON格式tw.local.jsonResponse准备响应调用。我是JSON新手,不知道如何在IBM BPM中用以下JSON格式解析日期。如果有人使用以下数据进行指导/建议,可能会有很大帮助 您需要做的第一件事是使用与BO同名的require数据类型创建BO。 然后使用以下代码将TwoObject转换为JSON:- function createJson(twObject){ var jsonString=""; if(typ

在我们的环境中,我们必须使用JSON格式tw.local.jsonResponse准备响应调用。我是JSON新手,不知道如何在IBM BPM中用以下JSON格式解析日期。如果有人使用以下数据进行指导/建议,可能会有很大帮助


您需要做的第一件事是使用与BO同名的require数据类型创建BO。 然后使用以下代码将TwoObject转换为JSON:-

function createJson(twObject){   
        var jsonString="";
        if(typeof twObject =='object' && twObject!=null){
            if(twObject.listLength>0){
                jsonString+="[";

                for (var j=0; j<twObject.listLength; j++){

        if(typeof twObject[j]!='string')
                  jsonString+="{";

                for (var property in twObject[j].propertyNames){

                       var name = twObject[j].propertyNames[property];
                       if(typeof twObject[j][name]=='object'){
                           if(Object.prototype.toString.call(twObject[j][name]).indexOf("TWDate")!="-1"){
                               jsonString+="\""+name+"\":\""+twObject[j][name].format("yyyy-MM-dd'T'HH:mm:ss'Z'")+"\",";
                           }else{
                               jsonString+="\""+name+"\":"+createJson(twObject[j][name]);
                           }                     
                       }
                       else{
                           jsonString+="\""+name+"\":\""+twObject[j][name]+"\",";
                       }

                       if(twObject[j].listLength>0)
                       {
                         for (var k=0;k<twObject[j].listLength;k++){
                         jsonString+="\""+ twObject[j][k]+"\",";
                         }
                       }

                }
                   if(typeof twObject[j] == 'string'){
                   jsonString+="\""+twObject[j]+"\"";

                    }

                 if(typeof twObject[j]!='string')
                  jsonString+="}";




               if(j!=twObject.listLength-1){
                   jsonString+=",";
               }
    }    jsonString+="],";
            }else{
                try{
                if(twObject.propertyNames.length>0){
                jsonString+="{";
                 for(var property in twObject.propertyNames){

                       var name = twObject.propertyNames[property];
                       if(typeof twObject[name]=='object'){
                           if(Object.prototype.toString.call(twObject[name]).indexOf("TWDate")!="-1"){
                               jsonString+="\""+name+"\":\""+twObject[name].format("yyyy-MM-dd'T'HH:mm:ss'Z'")+"\",";
                           }else{
                               jsonString+="\""+name+"\":"+createJson(twObject[name]);
                           }

                       }else{
                           jsonString+="\""+name+"\":\""+twObject[name]+"\",";
                       }


                    }
                 jsonString+="},"; }
                 else{
                     return "{},";
                 }}catch(e){
                     return "{},";
                 }
            }

      }
      else if(typeof twObject =='object' && twObject==null){
            return "{},";
        }
      return jsonString;
    }

源代码:。

我在IBM BPM中遇到了类似的json和日期问题

在您的解决方案中,您可以获得外部JavaScript文件json.js

您可以使用以下函数返回JSON字符串:

BPMJSON.convertTWToJSON(tw.local.MyObject, false)

这就是在BPM 8.6中对Rest令牌所起的作用:

tw.local.authToken = JSON.parse(tw.system.invokeREST(request).content).access_token;
逐部分解释:

tw.system.invokeREST(request)
调用REST客户端进行调用

tw.system.invokeREST(request).content
将响应作为jsonstring包含

JSON.parse(tw.system.invokeREST(request).content).access_token

将其解析回json对象,并将属性access_标记提取为字符串。

Humm。。我明白你为什么有这个问题了。让我说清楚

JSON日期不是日期-它们是字符串

因此,JSON中没有固定的日期格式,但对于IBM BPM,我们很幸运

例如,在IBM BPM中,日期的字符串表示形式为UTC时间,由Z表示

new Date("2020-09-24T18:04:41.306Z")
2020-09-24T18:04:41.306Z

例如,您可以在任何浏览器上使用任何日期函数将此日期字符串转换为JS date

new Date("2020-09-24T18:04:41.306Z")
在服务器端JS上,您可以使用相同的技巧,将sting日期转换为JS日期。

有什么帮助吗?