Groovy问题与" toDouble()。intValue()"

2020-08-15 03:24发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

我正在尝试将以下JSON值转换为Integer:

"项目":[{
 "产品":" 5000002325",
 "数量":" 10"
 }] 

这是我正在使用的脚本:

导入com.sap.gateway.ip.core.customdev.util.Message
 导入groovy.json.JsonSlurper
 导入groovy.json.JsonOutput
 def消息processData(消息消息){

     def json = message.getBody(java.lang.String)
     def jsonSlurper =新的JsonSlurper()
     def对象= jsonSlurper.parseText(json)

     object.Items.each {项目->
        //将乘积转换为整数
         item.Product = item.Product.toDouble()。intValue()
        //将数量转换为整数
         item.Quantity = item.Quantity.toDouble()。intValue()
     }
     message.setBody(JsonOutput.toJson(object))
     返回讯息
 }
 

但是它将"产品"值转换为完全不同的数字:

"商品":[{
 "产品":2147483647,
 "数量":10
 }]
 

如果产品长度小于10个字符,则效果很好。

您能建议吗?

谢谢

阿尼班

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

我正在尝试将以下JSON值转换为Integer:

"项目":[{
 "产品":" 5000002325",
 "数量":" 10"
 }] 

这是我正在使用的脚本:

导入com.sap.gateway.ip.core.customdev.util.Message
 导入groovy.json.JsonSlurper
 导入groovy.json.JsonOutput
 def消息processData(消息消息){

     def json = message.getBody(java.lang.String)
     def jsonSlurper =新的JsonSlurper()
     def对象= jsonSlurper.parseText(json)

     object.Items.each {项目->
        //将乘积转换为整数
         item.Product = item.Product.toDouble()。intValue()
        //将数量转换为整数
         item.Quantity = item.Quantity.toDouble()。intValue()
     }
     message.setBody(JsonOutput.toJson(object))
     返回讯息
 }
 

但是它将"产品"值转换为完全不同的数字:

"商品":[{
 "产品":2147483647,
 "数量":10
 }]
 

如果产品长度小于10个字符,则效果很好。

您能建议吗?

谢谢

阿尼班

付费偷看设置
发送
2条回答
zhangjiyang1323
1楼 · 2020-08-15 03:45.采纳回答

嗨Anirban

5000002325大于您可以在int中存储的最大数字:-)

使用long代替,您会没事的:

< pre> item.Product.toLong()

此致

Morten

Cikesha
2楼-- · 2020-08-15 03:33

您好, Anirban Mallick

没问题-很高兴为您提供帮助。

问候,

Morten

一周热门 更多>