Pact 压缩JVM闭合数组

Pact 压缩JVM闭合数组,pact,pact-jvm,Pact,Pact Jvm,我对pact jvm consumer中的closeArray有问题 如果Json是这样的,那么 “DslPart imeiResults=new PactDslJsonBody()”-无法构造语句 { "Car": { "Price": 123, "Features": [ "rain sensor", "cruise control" ], "Id": "6500" } } 我试着这样做:

我对pact jvm consumer中的closeArray有问题

如果Json是这样的,那么 “DslPart imeiResults=new PactDslJsonBody()”-无法构造语句

{ 
   "Car": {
     "Price": 123,     
     "Features": [
         "rain sensor",
         "cruise control"
     ],
     "Id": "6500"
   }
}
我试着这样做:

    DslPart etaResults = new PactDslJsonBody()
           .object("Car")
                .integerType("Price",123)
                .array("Features")
                    .stringValue("rain sensor")
                    .stringValue("cruise control")
                .closeArray()
                .stringValue("Id","6500")
            .closeObject()
            .asBody();

但这不起作用,例如.closeArray()不返回PactDslJsonBody,而是返回DslPart,所以在.closeArray()之后永远不能有任何内容?我不明白,有人能告诉我如何正确操作吗

我猜
closeArray
之后的
stringValue
不起作用

遗憾的是,当使用
array
函数创建一个数组时,它实际上会导致一些混乱。需要做的是使用
asBody
函数将
DslPart
转换回
PactDslJsonBody
。因此,您的示例应该是:

DslPart etaResults = new PactDslJsonBody()
   .object("Car")
        .integerType("Price",123)
        .array("Features")
            .stringValue("rain sensor")
            .stringValue("cruise control")
        .closeArray()
        .asBody()
        .stringValue("Id","6500")
    .closeObject();

现在,我们知道这是令人困惑的,试图让体验更好。希望这能有所帮助。

好的,我可以让这个例子起作用。但现在我又被卡住了。您是否可以从以下Json帮助创建DslPart:{“库存”:[{“汽车”:{“变速箱”:“自动”,“产品ID”:30212},“相机”:{“EndPrice”:1235,“条件”:[“FaultyButtons”,“FaultyCasing”],“ModelId:“650”}}],“IsSuccess:“true”,“Info:“Ok”}您遇到了什么问题?我不想为你做这项工作。请试着回答一个实际问题。最好是开始一个新的问题。