2017-03-21 20 views
0

私たちの環境では、JSON形式(tw.local.jsonResponse)のレスポンスコールを準備する必要があります。私はJSONの初心者ですが、IBM BPMの次のJSON形式で日付を解析する方法がわかりません。もし誰かが(以下のデータを使って)案内/示唆すれば大きな助けになるかもしれません。JSONレスポンスIBM BPM


Success Response 

Code: 200 

Content: 

{ 
     “status” : “success” 
     “data” : { 
       “change_number” : [string], 
       “instance” : [string], 
       “customer” : [string], 
       “tasks” : [ 
         { “task_number” : [string], 
         “description” : [string], 
         “schedule_start” : [datetime], 
         “schedule_end” : [datetime] 
         }, 
         { /* another task */ } 
       ] 
     } 
} 

+0

は[このガイド](https://www.ibm.com/developerworks/community/wikis/home?lang=en# !/ wiki/BPM%20Help%20Wiki/page /構文解析%20JSON%20String%20Using%20BPM%20JSON%20Helper%20Toolkit%20and%20Dot%20Notation)任意のヘルプ? –

答えて

0

最初にやるべきことはBOは、BOの同じ名前のデータ型を必要としますです。 はその後、JSONにtwObjectを変換するには、次のコードを使用します -

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; 
    } 

ソースコード:http://www.ibpmcoding.com

1

私はIBM BPMのjsonと日付で同様の問題を経験しました。

解決策では、外部JavaScriptファイルjson.jsを入手できます。

あなたのJSON文字列を返すために、次の機能を使用することができます。

BPMJSON.convertTWToJSON(tw.local.MyObject, false) 
関連する問題