gpt4 book ai didi

json - 在 Spring Cloud Contract Groovy 合约中使用复杂的 JSON

转载 作者:行者123 更新时间:2023-12-03 17:14:46 24 4
gpt4 key购买 nike

我一直在思考如何正确实现 Spring Cloud Contract Verifier,但是我试图通过契约(Contract)强制执行的 JSON 很复杂,而且我不确定如何在 Groovy 表示中处理它。 JSON 主体有时包含键的子对象,有时包含对象数组。

    response {
status(200)
headers { contentType applicationJson() }
body(
"attrbte1": 777310402,
"attrbte2": 100,
"attrbte3": "CAPSULE",
"attrbte4": "01655",
"attrbte5": "281604",
"attrbte6": "28160420",
"genericCodeNo": 16353,
"stc": {
"stcAttrbt1": 10000001600,
"stcAttrbt2": "8875",
"stcAttrbt3: "2008-08-04T00:00:00.000+0000",
"stcAttrbt4": null
},
"gtc": {
"gtcAttbt1": 10000000028,
"gtcAttbt2": "0N",
"gtcAttbt3": "2008-08-04T00:00:00.000+0000"
},
"etcs": [
{
"etcAttbt1": 530,
"etcAttbt2": null,
"etcAttbt3": null
}
],
"icds": [
{
"icdCode": "F31.3",
"icdCode2": "F45.232"
},
{
"icdCode": "F40.01",
"icdCode2": "F44.2341"
}
]
)

鉴于子对象是花括号的,groovy 认为它正在打开/关闭一个语句/操作,(有点是......)但它是 JSON 主体的一部分。我已经尝试了三重单引号斜杠 ('''/),但是它将正文视为一个连续的字符串,而不检查各个属性。

问题是真的,是否有一个转义序列会忽略花括号,同时保留主体的分层布局。

最佳答案

使用方括号创建对象(是的,我知道 JSON 中的方括号用于数组,这很奇怪,不是我发明的)
您可以使用或不使用引号将字段名称括起来,它们似乎都有效。

body([
stringField1: value(regex(".*")),
stringField2: value(regex(alphaNumeric()),
innerObject1: [
innerStringField1: "Hardcoded1",
innerIntegerField1: anyInteger()
]
])
等待?如果方括号用于对象,我该如何制作 JSON 列表?
双方括号。严重地。
body(
[[
stringFieldOfObjectInList: regex(".*")
]]
)
如何制作整数列表,例如 id?
说实话,还没试过。但是我希望如果您在数组中没有字段名称,Spring CC 将假定它是一个原始类型并且它会“正常工作”。

关于json - 在 Spring Cloud Contract Groovy 合约中使用复杂的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52650130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com