android - 我使用 retrofit2 进行网络调用,使用 GSON 作为解析 JSON 的转换器。我想解析一个键不固定的json结构

标签 android json retrofit retrofit2

我正在使用 retrofit2 进行网络调用,并使用 GSON 作为解析 JSON 的转换器。我想解析一个键不固定的json结构。 需要帮助创建相同的模型/bean。 这是我要解析的 JSON。user_card 数组中的键不断变化。

{
"isNewVersionAvailable": false
"ishotelslive": true
"error": false
"message": "Card information found."
"cardArray": {
"status": 1
"msg": "Cards fetched Succesfully"
"user_cards": {
"cxb39d6c8bf1b4d5bb6e479fbaca931bb14880e8511": {
"name_on_card": "asc"
"card_name": "2346"
"expiry_year": "2016"
"expiry_month": "06"
"card_type": "CC"
"card_token": "cxb39d6c8bf1b4d5bb6e479fbaca931bb14880e8511"
"is_expired": 0
"card_mode": "CC"
"card_cvv": 0
"card_no": "512345XXXXXX2346"
"card_brand": "MASTERCARD"
"card_bin": "512345"
"isDomestic": "Y"
}
"re6e69c2482160d8b2190b5dc36af2d46472ba5aafa": {
"name_on_card": "asc"
"card_name": "1111"
"expiry_year": "2016"
"expiry_month": "06"
"card_type": "CC"
"card_token": "re6e69c2482160d8b2190b5dc36af2d46472ba5aafa"
"is_expired": 0
"card_mode": "CC"
"card_cvv": 0
"card_no": "411111XXXXXX1111"
"card_brand": "VISA"
"card_bin": "411111"
"isDomestic": "Y"
}
"tye6977832bc0134be29317af77a6892b3e916dd69e": {
"name_on_card": "Shoban Test"
"card_name": "Shoban Test"
"expiry_year": "2017"
"expiry_month": "05"
"card_type": "CC"
"card_token": "tye6977832bc0134be29317af77a6892b3e916dd69e"
"is_expired": 0
"card_mode": "CC"
"card_cvv": 0
"card_no": "512345XXXXXX2346"
"card_brand": "MASTERCARD"
"card_bin": "512345"
"isDomestic": "Y"
}
"gh57f9e8ee6628e5c1cf1228d8491a08f966cae9f7s": {
"name_on_card": "asc"
"card_name": "9984"
"expiry_year": "2016"
"expiry_month": "06"
"card_type": "VISA"
"card_token": "gh57f9e8ee6628e5c1cf1228d8491a08f966cae9f7s"
"is_expired": 0
"card_mode": "DC"
"card_cvv": 0
"card_no": "434679XXXXXX9984"
"card_brand": "VISA"
"card_bin": "434679"
"isDomestic": "Y"
}
}
}
}

最佳答案

只需在 CardArray 对象中使用 Map 字段

import java.util.Map;

class Parent {
    public boolean isNewVersionAvailable;
    public boolean ishotelslive;
    public boolean error;
    public String message;
    public CardArray cardArray;
}

class CardArray {
    public int status;
    public String msg;
    public Map<String, Card> user_cards;
}

class Card {
    public String name_on_card;
    public String card_name;
    public String expiry_year;
    public String expiry_month;
    public String card_type;
    public String card_token;
    public int is_expired;
    public String card_mode;
    public String card_cvv;
    public String card_no;
    public String card_brand;
    public String card_bin;
    public String isDomestic;
}

关于android - 我使用 retrofit2 进行网络调用,使用 GSON 作为解析 JSON 的转换器。我想解析一个键不固定的json结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35271504/

相关文章:

android - 我在哪里可以找到 Android Studio 2.2 中的测试 Artifact 选择器?

android - OpenGL立方体着色

android - 无法从 ListView 获取选定的项目文本

android - 在 Retrofit 中创建动态对象请求

android - Jetpack Compose 关闭对话框时出错 : Anchor refers to a group that was removed

PHP MySQL JSON 按数据组织

Java 向 MongoDB 中的数组插入值

android - RxJava/Retrofit - 如何强制用户使用订阅者的特定子类?

android - 在 Retrofit 2 上使用 RxJavaCallAdapterFactory 时出现 AbstractMethodError

php - 意外 token '<' - AJAX