如何知道大型java对象的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;

我有一个pojo,有很多课程。想知道要传递给API的JSON结构

有没有办法创建json结构(使用一些假数据)

示例

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);