【问题标题】:Json objects to Array of objects in androidJson对象到android中的对象数组
【发布时间】:2020-08-02 20:15:40
【问题描述】:

我想将 CoinPriceMulti 类中的每个对象映射到一个对象数组中,因此我不需要为每个对象执行 getBTC().getUSD()、getETH().getUSD() 和 getUSD().getUSD() 之类的操作对象我只想将所有对象都放在对象数组中,这样我就可以像这样执行 object[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
}

}

我想将每个 BTC、ETH 和 USD 映射到一个数组中,而不是我想遍历每个对象的单独对象

【问题讨论】:

    标签: android json jackson


    【解决方案1】:

    如果可能的话,转换或将您的响应转换如下

    {
    "result": [
    "BTC": {
      "USD": 7167.06
    },
    "ETH": {
      "USD": 182.63
    },
    "USD": {
      "USD": 1
    }]
    }
    

    【讨论】:

    • 这是api响应我该如何更改它
    • 制作这个api的人可以帮忙!
    【解决方案2】:

    由于您的 JSON 包含动态字段名称,我们可以这样尝试

    1. 创建一个简单的 POJO 以读取 USD 中的价格

      class MarketValue {
          @SerializedName("USD")
          Double usd;
      }
      
    2. Gson解析创建令牌类型

      Type typeToken = new TypeToken<Map<String, MarketValue>>() {}.getType();
      
    3. 使用Gson解析器解析JSON

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

    您可以轻松地将映射转换为对象列表并使用索引进行访问。我使用 Gson 进行解析,但您确实知道我们如何解析 JSON。

    【讨论】:

    • 我没有清楚地了解事情,如果你把我的联系电话 7878049434 @Hussain 联系到我,请帮助它更好
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 2018-11-13
    相关资源
    最近更新 更多