【发布时间】:2018-08-30 18:39:07
【问题描述】:
我正在尝试使用 Groovy JSON 构建器构建 JSON。 使用的代码在 JSR223 中作为脚本如下: 使用的代码:
**def previousResponse = new groovy.json.JsonSlurper().parse(ctx.getPreviousResult().getResponseData())
@groovy.transform.Immutable
class Package {
String ReferenceId
String Name
String Version
Integer Size
}
def packages = previousResponse.Packages.collect { Package -> new Package(Package.ReferenceId, Package.Name, Package.LastVersion.Version, Package.LastVersion.Size) }
def builder = new groovy.json.JsonBuilder()
builder(HasDraftVersion: false,
IsApprovalPending: null,
IsInstalledSilently: true,
LastModified: "/Date(1535570626907)/",
LastModifiedBy: "Administrator",
DeviceConfigurations: [],
Packages: packages.collect(),
LdapTargets: null,
ReferenceId: null,
DeviceFamily: 6,
DeviceFamilyQualification: 0,
Name: "test",
Description: "",
Random: "2018-08-29T15:16:47",
IsPublicAPI: true)
sampler.getArguments().removeAllArguments()
sampler.addNonEncodedArgument('',builder.toString(),'')
sampler.setPostBodyRaw(true);
The result I am getting from the above code is correct and is in the format:
{"HasDraftVersion":false,"IsApprovalPending":null,"IsInstalledSilently":true,"LastModified":"/Date(1535661532840)/","LastModifiedBy":"Administrator","DeviceConfigurations": [],"Packages":[{"referenceId":"282812e7-c3e6-4ecb-8267-bbe2c250ad59","version":"1.0","size":10465294,"name":"10MB","packageDependencies" :""},{"referenceId":"02f5b531-8e37-42c1-bfcb-ec8db0920bed","version":"1.0","size":104884390,"name":"100MB","packageDependencies":"" }],"LdapTargets":null,"ReferenceId":null,"DeviceFamily":6,"DeviceFamilyQualification":0,"Name":"work","Description":"","Random":"2018-08 -30T04:38:52","IsPublicAPI":true}
我面临的问题是标签和值的顺序,例如 Packages 标签的顺序应该是:
ReferenceID、名称、版本 PackageDependencies
当我将它传递给下一个 HTTP 请求时遇到的错误是
{"Data":null,"ErrorCode":0,"ErrorMessage":"参数 'ReferenceId' 具有无效值 ''。","HelpLink":null,"InnerErrors":[{"Data ":["ReferenceId",""],"ErrorCode":2,"ErrorMessage":"参数 'ReferenceId' 的值无效。","HelpLink":null,"InnerErrors":null,"Ref": "2018-08-30 16:38:52.9245-04:00"}],"Ref":"2018-08-30 16:38:52.9245-04:00"}
ReferenceId 正在传递,结果也是一样的。
【问题讨论】: