猿问

坚持从 JSONObject 获取 JSONArray

我有一个类似于以下内容的 JSON 响应:

一个 Subscription POJO 类及其内部是“subscriptionPlans”的 Arraylist:


订阅详细信息.java


@Expose()

@SerializedName("subscriptionPlans")

public ArrayList<SubscriptionPlans> subscriptionPlans;



public ArrayList<SubscriptionPlans> getSubscriptionPlans() {

    return subscriptionPlans;

}


@Override

public String toString() {

    return "SubscriptionDetails{" +

            "subscriptionPlans=" + subscriptionPlans +

            '}';

}

订阅计划.java


@SerializedName("plan_name")

@Expose

public String planName;


@SerializedName("description")

@Expose

public String description;


@SerializedName("amount")

@Expose

public 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 $


我在这里错过了什么或做错了什么?


喵喔喔
浏览 613回答 1
1回答

陪伴而非守候

将整个字符串传递给 GSON,而不仅仅是String.valueOf(jsonObject.getJSONArray("subscriptionPlans")):SubscriptionDetails&nbsp;subscriptionDetails&nbsp;=&nbsp;gson.fromJson(String.valueOf(jsonObject),&nbsp;SubscriptionDetails.class);
随时随地看视频慕课网APP

相关分类

Java
我要回答