【发布时间】:2019-12-27 06:14:29
【问题描述】:
我正在使用 Flutter,目前正在尝试创建图表。我希望从下面的链接中解析这个 JSON 数组。我的问题是“价格”对象中提供的信息,值都在数组本身内部。我想获取这些值并将它们拆分为 X 和 Y 列表,但我不知道如何实现这一点。我在下面发布了 JSON 数据的 sn-p。
https://api.coingecko.com/api/v3/coins/bitcoin/market_chartvs_currency=usd&days=1
我只熟悉通过创建类和构造函数来解析数据。然后创建一个fromJSON(Map<String, dynamic> json) 类并将数据放入一个列表中,如下面的代码 sn-p 所示,该代码是我从另一个带有对象值的 URL 创建的。我该如何将这个数组 JSON 数据解析为两个列表数据?
解析 JSON 的代码
List<Coins> _coins = List<Coins>();
Future<List<Coins>> fetchCoins() async {
var url = 'URL';
var response = await http.get(url);
var coins = List<Coins>();
if (response.statusCode == 200) {
var coinsJSON = json.decode(response.body);
for (var coinJSON in coinsJSON) {
coins.add(Coins.fromJson(coinJSON));
}
}
return coins;
}
@override
void initState() {
fetchCoins().then((value) {
setState(() {
_coins.addAll(value);
});
});
super.initState();
}
class Coins{
String symbol;
String name;
Coins(this.symbol, this.name);
Coins.fromJson(Map<String, dynamic> json) {
symbol = json['symbol'];
name = json['name'];
JSON 数据片段
{
"prices":[
[
1566344769277,
10758.856131083012
],
[
1566345110646,
10747.91694691537
],
[
1566345345922,
10743.789313302059
],
]
}
编辑:在@EJABU 的帮助下解决。
class HistoricalData {
List prices;
List<num> listX = [];
List<num> listY = [];
HistoricalData(this.prices,this.listX, this.listY);
HistoricalData.fromJson(Map<String, dynamic> json) {
prices = json['prices'];
for (var price in prices) {
listX.add(price[0]);
listY.add(price[1]);
}
}
【问题讨论】:
标签: arrays json api parsing flutter