Java Jackson:使用json字符串部分更新bean
我正在编写一个测试套件,其中包括ping一个具有不同负载的API。下面是示例有效负载(示例): 我在Java Jackson:使用json字符串部分更新bean,java,json,jackson,deserialization,Java,Json,Jackson,Deserialization,我正在编写一个测试套件,其中包括ping一个具有不同负载的API。下面是示例有效负载(示例): 我在json文件中编写了上述有效负载,测试套件执行以下操作: 读取json文件并为有效负载创建bean 发送POST请求 断言响应 现在,我需要用不同的值组合测试同一个API,例如美国地区、低可用性、低容量等。该请求有许多其他参数,但只有上面的参数发生变化。要测试这一点,我可以执行以下操作: 为每个场景创建一个json文件 只创建一个json文件,将其反序列化并将组合存储到另一个文件中,如下所示
json
文件中编写了上述有效负载,测试套件执行以下操作:
- 读取
文件并为有效负载创建beanjson
- 发送
请求POST
- 断言响应
- 为每个场景创建一个
文件json
- 只创建一个
文件,将其反序列化并将组合存储到另一个文件中,如下所示:json
@数据
公共类有效载荷{
私人位置;
@JsonProperty(“附加参数”)
私有附加参数附加参数;
}
@数据
公共类位置{
@JacksonInject(“区域”)
私有字符串区域;
}
@数据
公共类附加参数{
@JacksonInject(“可用性”)
私有字符串可用性;
@JacksonInject(“体积”)
私有字符串卷;
}
然后你可以使用:
String json=“{\n”
+“\”位置\:{},\n”
+“\”附加参数\“:{}\n”
+ " }";
ObjectMapper mapper=新的ObjectMapper();
setInjectableValues(newinjectableValues.Std()
.addValue(“地区”、“欧盟”)
.addValue(“可用性”、“高”)
.addValue(“体积”、“低”)
);
Payload Payload=mapper.readValue(json,Payload.class);
{
"param_1" : "value_1",
"param_2" : "value_2",
"param_3" : "value_3",
"param_4" : "value_4",
"param_5" : "value_5",
"location" : {
"region" : "EU"
},
"additional_params" : {
"availability" : "high",
"volume" : "low"
}
}
[
{
"location": {
"region": "US"
},
"additional_params" : {
"availability" : "high",
"volume" : "high"
}
},
{
"location": {
"region": "EU"
},
"additional_params" : {
"availability" : "low",
"volume" : "low"
}
}
]