如何读取数组顶级的JSON?

时间:2018-03-11 15:27:18

标签: android html arrays json root

我是Android开发的新手,但通常会在线找到我的问题的答案。我整个周末都没有成功。

我尝试做的是从互联网上的JSON文件中读取数据。 看起来像这样

[
{
    "id": "bitcoin", 
    "name": "Bitcoin", 
    "symbol": "BTC", 
    "rank": "1", 
    "price_usd": "9246.27", 
    "price_btc": "1.0", 
    "24h_volume_usd": "5659320000.0", 
    "market_cap_usd": "156378808114", 
    "available_supply": "16912637.0", 
    "total_supply": "16912637.0", 
    "max_supply": "21000000.0", 
    "percent_change_1h": "1.77", 
    "percent_change_24h": "-1.51", 
    "percent_change_7d": "-17.57", 
    "last_updated": "1520773466"
}]

它只是数组中的单个对象。不幸的是,它不符合我的样子。

我成功的做法是阅读HTML,然后找到我正在寻找的字段,但我想以更好的方式做到这一点。我已经观看了数十个视频并在线阅读了一些教程,但我无法让它发挥作用。我得到了异常,崩溃以及什么没有,并且愤怒地删除了所有这些并且我再次从头开始。我知道初学者的问题通常不受欢迎,所以我自己也不会问任何问题。我正在做这个小项目,以便学习一些编程。

如果有人可以向我展示或指出正确的方向,那将会很酷。如果我将它作为JSON而不是HTML接近它,我甚至无法读取数据。

1 个答案:

答案 0 :(得分:0)

我建议使用Gson来解析JSON数据。在您的情况下,您可以使用以下代码示例轻松解决此问题。

让我们假设您已经创建了一个具有您从JSON获得的所有属性的类。

POJO类将如下所示。

public class Product {
    public String id;
    public String name;
    public String symbol;
    public String rank;
    public String price_usd;
    public String price_btc;
    public String 24h_volume_usd;
    public String market_cap_usd;
    public String available_supply;
    public String total_supply;
    public String max_supply;
    public String percent_change_1h;
    public String percent_change_24h;
    public String percent_change_7d;
    public String last_updated;
}

现在使用Gson来解析以下类结构中的数据。当一个对象数组返回时,你需要做这样的事情。

Gson gson = new Gson();
Product[] products = gson.fromJson(jsonString, Product[].class);

简单!