Json объектов в массив объектов в android - PullRequest
1 голос
/ 20 апреля 2020

Я хочу отобразить каждый объект в классе CoinPriceMulti в массив объектов, поэтому мне не нужно делать, как getBT C (). GetUSD (), getETH (). GetUSD () и getUSD (). GetUSD ( ) для каждого объекта я просто хочу, чтобы все в массиве объектов, чтобы я мог сделать объект [0] .getUSD (), как это.

Это мой класс сущности для данного JSON ответа ниже

public class CoinPriceMulti {

/**
 * BTC : {"USD":7167.06}
 * ETH : {"USD":182.63}
 * USD : {"USD":1}
 */

private BTCBean BTC;
private ETHBean ETH;
private USDBean USD;

public BTCBean getBTC() {
    return BTC;
}

public void setBTC(BTCBean BTC) {
    this.BTC = BTC;
}

public ETHBean getETH() {
    return ETH;
}

public void setETH(ETHBean ETH) {
    this.ETH = ETH;
}

public USDBean getUSD() {
    return USD;
}

public void setUSD(USDBean USD) {
    this.USD = USD;
}

public static class BTCBean {
    /**
     * USD : 7167.06
     */

    private double USD;

    public double getUSD() {
        return USD;
    }

    public void setUSD(double USD) {
        this.USD = USD;
    }
}

public static class ETHBean {
    /**
     * USD : 182.63
     */

    private double USD;

    public double getUSD() {
        return USD;
    }

    public void setUSD(double USD) {
        this.USD = USD;
    }
}

public static class USDBean {
    /**
     * USD : 1
     */

    private int USD;

    public int getUSD() {
        return USD;
    }

    public void setUSD(int USD) {
        this.USD = USD;
    }
}

Это мой JSON ответ

{
"BTC": {
    "USD": 7167.06
},
"ETH": {
    "USD": 182.63
},
"USD": {
    "USD": 1
}

}

Я хочу отобразить каждый BT C, ETH и USD в массив, а не отдельные объекты, которые я хочу пройти через каждый

Ответы [ 2 ]

0 голосов
/ 20 апреля 2020

Поскольку ваш JSON содержит динамические c имена полей, мы можем попробовать вот так

  1. Создать простой POJO для чтения цены в USD

    class MarketValue {
        @SerializedName("USD")
        Double usd;
    }
    
  2. Создание типа токена для Gson анализа

    Type typeToken = new TypeToken<Map<String, MarketValue>>() {}.getType();
    
  3. Parse JSON с использованием Gson parser

    Map<String, MarketValue> result = new Gson().fromJson(/* Your JSON string */, typeToken);
    

Вы можете легко преобразовать карту в список объектов и получить доступ с помощью индекса. Я использовал Gson для разбора, но вы поняли, как мы разбираем JSON.

0 голосов
/ 20 апреля 2020

Если возможно, тогда преобразуйте или преобразуйте ваш ответ, как показано ниже

{
"result": [
"BTC": {
  "USD": 7167.06
},
"ETH": {
  "USD": 182.63
},
"USD": {
  "USD": 1
}]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...