[英]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.