1.字符串拼接
| def ids = [21321,3445,3456]; |
| def size=ids.size(); |
| vars.put("skuNum",size); |
| logs.add('sku数量:'+size); |
| StringBuffer sb = new StringBuffer(); |
| def random = new java.util.Random(); |
| for (int i = 0; i < size; i++) { |
| def skuId = ids[i] |
| binding.setVariable("skuId"+i, skuId); |
| def count = random.nextInt(6)+2; |
| def subOrderId = random.nextInt(999999)+1; |
| vars.put("cnt",count); |
| binding.setVariable("count"+i, count); |
| logs.add('skuID:'+binding.getVariable("skuId"+i)+" 数量:"+binding.getVariable("count"+i)); |
| sb.append("{\"skuId\":"+binding.getVariable("skuId"+i)+",\"productName\":\"goapi测试\",\"saleCount\":"+binding.getVariable("count"+i)+",\"originPrice\":0.02,\"subtotalAmount\":0.04,\"couponTotalAmount\":0.01,\"activityTotalAmount\":0.01,\"outSkuld\":\""+binding.getVariable("skuId"+i)+"\",\"subOrderld\":\""+subOrderId+"\"},"); |
| } |
| def orderSkus=sb.toString().substring(0, sb.toString().length() - 1); |
| vars.put("orderSkus",orderSkus); |
| logs.add('拼接后的字符串:'+orderSkus); |
| if(${channelId} == 6801669){ |
| def dateNow=${dateNow}+"A"; |
| vars.put("dateNow",dateNow); |
| logs.add('抖音订单号:'+dateNow); |
| } |
2.json 拼接
| import groovy.json.JsonSlurper |
| def ReturnAddressDTO = runVars.get('ReturnAddressDTO'); |
| def jsonObject = new JsonSlurper().parseText(ReturnAddressDTO) |
| jsonObject.put("policyTimeInDay",30); |
| jsonObject.put("policyType",1); |
| vars.put("ReturnAddressDTO",jsonObject); |
3、数组动态增加键值对
| 上游输出json: |
| expensesInfo: [{"itemId":470207765,"skuId":472362734,"expensesInnerVO":[{"pointDeduction":15.0,"pointAssign":["网易再顾:5.00% ","严选贸易:10.00% "],"startTime":1689868800000,"endTime":1704038399999}]}] |
| ------------------------------------------------------------------------ |
| import groovy.json.JsonSlurper |
| import java.text.DateFormat |
| import java.text.SimpleDateFormat |
| |
| def timestampToDateInt(timestamp) { |
| |
| def date = new Date(timestamp) |
| DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd") |
| def formattedDate = dateFormat.format(date) |
| return formattedDate |
| } |
| def expensesInfo = new JsonSlurper().parseText(runVars.get('expensesInfo')) |
| def startDate = expensesInfo[0].expensesInnerVO[0].startTime |
| def endDate = expensesInfo[0].expensesInnerVO[0].endTime |
| logs.add('开始日期:' + startDate + '\n结束日期:' + endDate) |
| |
| startDate = timestampToDateInt(startDate) |
| endDate = timestampToDateInt(endDate) |
| logs.add('开始日期:' + startDate + '\n结束日期:' + endDate) |
| |
| |
| def newKeyValuePairs = [ |
| postageEffectiveDate1: startDate.toString(), |
| postageExpirationDate1: endDate.toString() |
| ] |
| |
| expensesInfo[0].expensesInnerVO[0].putAll(newKeyValuePairs) |
| vars.put("expensesInfo", new groovy.json.JsonBuilder(expensesInfo).toPrettyString()) |
| logs.add('日志信息:\n' + expensesInfo) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」