0

使用下面的 groovy 脚本,我可以删除特定字段的双引号,但如果结构是数组,则此脚本不起作用。请帮助我。

输入:

[
{
    "SalesOrder": "02",
    "Dealer": "1",
    "Purchase": "B",
    "CreationDate": "2021-08-17",
    "Status": "Open",
    "Overall": "A",
    "OverallTotal": "A",
    "Amount": "1000.0"
    
},
{
    "SalesOrder": "03",
    "Dealer": "2",
    "Purchase": "B",
    "CreationDate": "2021-08-17",
    "Status": "Open",
    "Overall": "A",
    "OverallTotal": "A",
    "Amount": "1000.0"
},
{
"SalesOrder": "04",
    "Dealer": "3",
    "Purchase": "B",
    "CreationDate": "2021-08-17",
    "Status": "Open",
    "Overall": "A",
    "OverallTotal": "A",
    "Amount": "1000.0"
}


  ]

Groovy 脚本:`

  import com.sap.gateway.ip.core.customdev.util.Message;
  import java.util.HashMap;
  import groovy.json.*
  import java.util.*;
def Message processData(Message message)
 {
def body = message.getBody(java.lang.String) as String;
 def jsonDataObject = jsonSlurper.parseText(body);
 if(jsonDataObject.Amount!=null)
  { 
  jsonDataObject.Amount = convertToFloat(jsonDataObject.Amount);
    }
   message.setBody(new JsonBuilder(jsonDataObject).toPrettyString())
   return message
   static Object convertToFloat(Object inputValue){
    if(inputValue.isNumber()){
      return inputValue.toFloat();
    }else{
      return inputValue;
    }
     }

预期的输出是,对于金额字段,双引号应该被删除,然后显示输出。下面是输出代码。

输出:

[
  {
 "SalesOrder": "02",
  "Dealer": "1",
   "Purchase": "B",
  "CreationDate": "2021-08-17",
  "Status": "Open",
  "Overall": "A",
  "OverallTotal": "A",
  "Amount": 1000.0

  },
  {
"SalesOrder": "03",
"Dealer": "2",
"Purchase": "B",
"CreationDate": "2021-08-17",
"Status": "Open",
"Overall": "A",
"OverallTotal": "A",
"Amount": 1000.0
  },
  {
"SalesOrder": "04",
"Dealer": "3",
"Purchase": "B",
"CreationDate": "2021-08-17",
"Status": "Open",
"Overall": "A",
"OverallTotal": "A",
"Amount": 1000.0
  }


  ]
4

0 回答 0