如何知道大型java对象的json结构?
我有一个pojo,有很多课程。想知道要传递给API的JSON结构 有没有办法创建json结构(使用一些假数据) 示例:如何知道大型java对象的json结构?,java,json,jsonconvert,Java,Json,Jsonconvert,我有一个pojo,有很多课程。想知道要传递给API的JSON结构 有没有办法创建json结构(使用一些假数据) 示例: public class Staff { private String personName; private Salary salary; private String[] position; // Array private List<Department> department;
public class Staff {
private String personName;
private Salary salary;
private String[] position; // Array
private List<Department> department; // List
private Map<String, Address> addressMap; // Map
// getters & setters of those too.
}
您可以使用
com.google.code.gson
库
Maven依赖项如下所示
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
我更喜欢使用一种叫做“Jackson”的特殊且功能强大的工具 它可以在POJO->JSON和JSON->POJO两个方向上进行转换 它也适用于其他输入格式,如YAML等 用法简单
// Creates default JSON mapper
ObjectMapper mapper = new ObjectMapper();
// Initialize your root object (it could be not necessarily “Stuff”)
// including all nested classes and fields. Any dummy data is
// applicable for your purposes.
Staff staff = new Staff();
// Write object to JSON in file:
mapper.writeValue(new File("c:\\staff.json"), staff);
在Maven Repo中,您可以使用gson、fastjson或Jackson
哦,好的,让我看看。谢谢(顺便说一句,我已经编辑了我的问题)不@Saad,它不起作用。我身上没有json。如果我泄露了数据,Gson将打印Json。正确的?我身上没有任何数据/我不知道提供数据的Json结构。我需要知道它的结构,这样我才能获得数据填充的json。为什么不在创建java对象时使用您在问题中给出的示例数据呢。一旦创建了Java对象,就可以使用Gson创建JSON字符串。一旦你有了JSON字符串,你可以根据需要替换其中的数据。它有很多!。还有很多POJO要做。我只是提供了一个样本数据来理解预期的结果。当然,我必须尝试使用一些示例数据,但我想在这样做之前先搜索/询问一下。您可以使用像swagger/openapi这样的工具为您生成此输出。
Staff staff = new Staff();
// create your objects as required
Gson gson = new Gson();
// below jsonString will have the JSON structure of staff Object
String jsonString = gson.toJson(staff)
// Creates default JSON mapper
ObjectMapper mapper = new ObjectMapper();
// Initialize your root object (it could be not necessarily “Stuff”)
// including all nested classes and fields. Any dummy data is
// applicable for your purposes.
Staff staff = new Staff();
// Write object to JSON in file:
mapper.writeValue(new File("c:\\staff.json"), staff);