我正在测试REST API。每个API都使用不同类型的JSON有效负载。 我不想手动填写所有输入。因此,我想动态生成JSON(例如,从文本文件中读取值并填写JSON结构),然后将生成的JSON作为请求主体传递给API。
这样做的最佳方法是什么? 对工具或插件有什么建议吗?
P.S。嵌套的JSON结构非常复杂。
答案 0 :(得分:1)
这与我几周前的情况一样。
我所做的可能对您也有帮助:
我使用了private Map<String, Object> data;
在我想拥有动态JSON的DTO中。
就像我的JSON是:
{
"key":{
"key1":["1","2","3"]
},
"key2":{
}
}
然后,此JSON将保存为Map,可用于解析JSON数据。
要进行解析,请尝试使用org.json
例如:
JSONObject jsonObject = new JSONObject(mapFromDTO);
现在您拥有对JSON的完全访问权限,这是您的核心问题。
答案 1 :(得分:0)
答案在于定义合同。首先确定JSON中的最大可能值。
例如,开始时,您可以决定以下联系人:
{
"id": 1,
"name": "Username",
"age": 30,
"phone": 900000000
}
一旦合同确定,请设计一个POJO。 POJO可能是非常复杂的数据结构,可以具有字段,也可以是字段(对象)列表。这完全取决于您的业务。
然后您可以编写一个Java服务,该服务可以基于一些复杂的业务逻辑来生成此POJO。
此POJO填充后,请使用杰克逊等第三方库将其转换为JSON。
进一步阅读: https://www.tutorialspoint.com/how-to-convert-java-object-to-json-using-jackson-library