如何将下面提到的json转换为Pojo形式

问题描述 投票:0回答:1

Json结构: [ { “预订ID”:3438 }, { “预订ID”:3108 } ]

我创建了一个 GetBookingIdResPojo 类 封装 ResPojo;

导入java.util.List;

公共类 GetBookingIdResPojo { 私人列表 bookingsId;

public List<GetBookingId> getBookingsId() {
    return bookingsId;
}

public void setBookingsId(List<GetBookingId> bookingsId) {
    this.bookingsId = bookingsId;
}

}

然后创建了一个 GetBookingId 类 封装 ResPojo;

公共类GetBookingId { 私有 int bookingid;

public int getBookingid() {
    return bookingid;
}

public void setBookingid(int bookingid) {
    this.bookingid = bookingid;
}

}

有人可以纠正这个吗?

java rest-assured pojo web-api-testing
1个回答
0
投票

对于 JSON 到 POJO 反序列化任务,您通常只需要一个可以命名为 BookingDetails 的类以匹配命名约定。您可以使用 Gson 或 Jackson 等库进行序列化和反序列化。

这是一个使用 Gson 的完整示例,它简化了流程,因为您不需要单独的响应类:

package ResPojo;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.List;

public class Main {

  public static void main(String[] args) {
    String jsonInput = "[ { \"bookingid\": 3438 }, { \"bookingid\": 3108 } ]";

    Gson gson = new Gson();
    Type listType = new TypeToken<List<BookingDetails>>(){}.getType();
    List<BookingDetails> bookingDetails = gson.fromJson(jsonInput, listType);

    bookingDetails.forEach(detail -> System.out.println("Booking ID: " + detail.getBookingId()));
  }

  public static class BookingDetails {
    private int bookingid;

    public int getBookingId() {
      return bookingid;
    }

    public void setBookingId(int bookingid) {
      this.bookingid = bookingid;
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.