簡體   English   中英

如何在spring boot中做出對象的響應

[英]How to make response of the object in spring boot

我創建了一個 api 來獲取 Ec2 的所有實例詳細信息,但我不知道如何對它做出正確的響應並發送,目前我正在使用數組列表,但它正在返回數組數組。 如何做出完美的回應請幫助

我的代碼 -

public ArrayList<ArrayList<String>> getAllInstances() {
        boolean done = false;
        ArrayList<ArrayList<String>> instances = new ArrayList<>();
        DescribeInstancesRequest request = new DescribeInstancesRequest();
        while (!done) {
            DescribeInstancesResult response = ec2Client.describeInstances(request);
        
            for (Reservation reservation : response.getReservations()) {
                for (Instance instance : reservation.getInstances()) {
                    ArrayList<String> list = new ArrayList<String>();
                    list.add(instance.getInstanceId());
                    list.add(instance.getInstanceType());
                    list.add(instance.getState().getName());
                    System.out.printf(
                            "Found instance with id %s, " +
                                    "AMI %s, " +
                                    "type %s, " +
                                    "state %s " +
                                    "and monitoring state %s",
                            instance.getInstanceId(),
                            instance.getImageId(),
                            instance.getInstanceType(),
                            instance.getState().getName(),
                            instance.getMonitoring().getState());
                    instances.add(list);
         }
            }
            request.setNextToken(response.getNextToken());
            if (response.getNextToken() == null) {
                done = true;
            }
            System.out.println("flag stats = "+done);
        }
        return  instances;
    }

回復 -

[["i-09xxxxxxf5b82","t2.nano","running"],["i-03ddxxxxx956d099","t2.micro","running"]]

如何使其成為正確的 json 響應。

我會用你需要返回的字段創建一個新類,即:

public class InstanceDetails {
    private String instanceId;
    private String instanceType; // Could use an enum for this if you know all possible values
    private String state;
    // further fields as required
    // constructor / getters / setters
}

然后,您可以創建此類的對象而不是您的列表,並將它們添加到實例列表中。 因此,您的函數定義將是:

public List<InstanceDetails> getAllInstances() {

}

(作為旁注,您這樣做可能是有原因的,但我通常在方法定義中使用抽象列表類型,您仍然可以在方法內返回一個 ArrayList)。
您可能還需要一個 JSON 庫(例如Jackson )來解析輸出,具體取決於您發送的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM