簡體   English   中英

如何反序列化此JSON類型

[英]How do I deserialize this JSON type

我有一個看起來像這樣的JSON:

{
    "results": {
        "exchange": [
            "site.com",
            {
                "currency": "usd",
                "last_traded": "2015.24"
            }
        ]
    }
}

我如何獲得last_traded值?

我為此編寫了一些POJO,但似乎找不到在exchange數組中獲取鍵值的方法。

public class ExchangeContainer {

    @Expose
    private Results results;

    public Results getResults() {
        return results;
    }

    public void setResults(Results results) {
        this.results = results;
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }

}

public class Results {

    @Expose
    private List<String> exchange = new ArrayList<String>();

    public List<String> getExchange() {
        return exchange;
    }

    public void setExchange(List<String> exchange) {
        this.exchange = exchange;
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
}

我正在使用GSON反序列化此JSON。

因此,為了讓我遍歷該模型,請執行以下操作:

ExchangeContainer response;

String rate = response.getResults().getExchange().get(1); // how to continue?

而且我被卡住了。

在您的課程中使用implements JsonDeserializer來實現接口

並覆蓋deserialize方法。

示例鏈接-http: //www.javacreed.com/gson-deserialiser-example/

當您通過創建字符串列表時

private List<String> exchange = new ArrayList<String>();

在創建的列表中設置另一個列表,即作為交換

public void setExchange(List<String> exchange)

當您通過調用行獲得價值時

String rate = response.getResults().getExchange().get(1);

它包含"last_traded": "2015.24"對嗎?

現在獲得 2015.24 ,您有以下選擇:-

  1. 字符串[] split(“:”)

  2. 字符串子字符串(int beginIndex)

我希望這能解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM