gpt4 book ai didi

flutter - 在 Flutter 中解析复杂的 JSON

转载 作者:IT王子 更新时间:2023-10-29 07:14:54 25 4
gpt4 key购买 nike

我作为 HTTP 响应获得的 map 列表

    final List<dynamic> scoresByDay = httpResponse[0]['days']['averageScores'];    
print(scoresByDay);

看起来像:

   [
{"date":"27\/08\/2019","score":"30.00"},
{"date":"28\/08\/2019","score":"67.67"},
{"date":"29\/08\/2019","score":"73.00"},
{"date":"30\/08\/2019","score":"59.80"},
{"date":"31\/08\/2019","score":"57.18"},
{"date":"01\/09\/2019","score":"50.75"},
{"date":"02\/09\/2019","score":"50.78"},
{"date":"03\/09\/2019","score":"50.85"},
{"date":"04\/09\/2019","score":"48.18"},
{"date":"05\/09\/2019","score":"58.12"}
]

我想从这个 json 数组中获得的是一个列表,我可以将其用于 Flutter 图表库(简单条形图)。为了使用这个简单的条形图,这个数组应该是这样的:

     final data = [
new OrdinalSales('27', 30),
new OrdinalSales('28', 68),
new OrdinalSales('29', 74),
new OrdinalSales('30', 60),
new OrdinalSales('31', 57),
new OrdinalSales('01', 51),
new OrdinalSales('02', 51),
new OrdinalSales('03', 51),
new OrdinalSales('04', 48),
new OrdinalSales('05', 58),

];

有没有什么方法可以使用现有的 map 列表来创建我需要显示简单条形图的 json 数组?

编辑:

我设法使用简单条形图 (https://google.github.io/charts/flutter/example/bar_charts/simple) 所需的数据创建了一个数组 (simpleBarArrayData)。但是,当我尝试插入该数组而不是在简单条形图中作为示例设置的数组时,会发生错误:

    type 'List<dynamic>' is not a subtype of type List<OrdinalSales>' 

示例数据数组:

    final data = [
new OrdinalSales('27', 30),
new OrdinalSales('28', 68),
new OrdinalSales('29', 74),
new OrdinalSales('30', 60),
new OrdinalSales('31', 57),
new OrdinalSales('01', 51),
new OrdinalSales('02', 51),
new OrdinalSales('03', 51),
new OrdinalSales('04', 48),
new OrdinalSales('05', 58),
];

创建的数组 (simpleBarArrayData) 如下所示:

   print(simpleBarArrayData);

[
new OrdinalSales('27',30),
new OrdinalSales('28',68),
new OrdinalSales('29',73),
new OrdinalSales('30',60),
new OrdinalSales('31',57),
new OrdinalSales('01',51),
new OrdinalSales('02',51),
new OrdinalSales('03',51),
new OrdinalSales('04',48),
new OrdinalSales('05',58)
]

我尝试用以下代码替换现有数据:

    final data = simpleBarArrayData;

然后出现错误。

最佳答案

假设你的

List json = [YOUR_GIVEN_JSON_IN_LIST];

你可以创建这个方法,这里 dates 将只有你的 datesscores 有分数。

List<String> dates = [];
List<int> scores = [];

void _fetch() {
for (var item in json) {
String date = item["date"];
dates.add(date.split("\/")[0]);

String score = item["score"];
int element = int.parse(score.split("\.")[0]);
scores.add(element);
}
}

void _merge() {
// you can merge by iterating it over
List<OrdinalSales> data = [];
for (int i = 0; i < dates.length; i++) {
data.add(OrdinalSales(dates[i], scores[i]));
}
}

关于flutter - 在 Flutter 中解析复杂的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57707847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com