我有一個類似于以下內容的 JSON 響應:一個 Subscription POJO 類及其內部是“subscriptionPlans”的 Arraylist:訂閱詳細信息.java@Expose()@SerializedName("subscriptionPlans")public ArrayList<SubscriptionPlans> subscriptionPlans;public ArrayList<SubscriptionPlans> getSubscriptionPlans() { return subscriptionPlans;}@Overridepublic String toString() { return "SubscriptionDetails{" + "subscriptionPlans=" + subscriptionPlans + '}';}訂閱計劃.java@SerializedName("plan_name")@Exposepublic String planName;@SerializedName("description")@Exposepublic String description;@SerializedName("amount")@Exposepublic String amount;public String getPlanName() { return planName;}public String getDescription() { return description;}public String getAmount() { return amount;}我正在使用 Gson 從 JSON 中獲取數據并將其填充到各種 POJO 類中,如下所示:Gson gson = new Gson();SubscriptionDetails subscriptionDetails = gson.fromJson(String.valueOf(jsonObject.getJSONArray("subscriptionPlans")), SubscriptionDetails.class);ArrayList<SubscriptionPlans> subscriptionPlans = subscriptionDetails.getSubscriptionPlans();String amount = subscriptionPlans.get(0).getAmount();但是,我收到錯誤響應, java.lang.IllegalStateException:Expected BEGIN_OBJECT but was BEGIN_ARRAY at line column 2 path $我在這里錯過了什么或做錯了什么?
1 回答

陪伴而非守候
TA貢獻1757條經驗 獲得超8個贊
將整個字符串傳遞給 GSON,而不僅僅是String.valueOf(jsonObject.getJSONArray("subscriptionPlans"))
:
SubscriptionDetails subscriptionDetails = gson.fromJson(String.valueOf(jsonObject), SubscriptionDetails.class);
添加回答
舉報
0/150
提交
取消