gpt4 book ai didi

dart - 在 Dart 中未获得所需的 json 响应

转载 作者:IT王子 更新时间:2023-10-29 07:11:36 24 4
gpt4 key购买 nike

我目前正在构建一个应用程序以从 json api 获取数据。我想从 json 代码中获取数字 54。

这是 json link

我在这里尝试制作 json api 的模型类

class TeerModel{
String text;
TeerModel(this.text);
TeerModel.fromJson(Map<String, dynamic>parsedJson){
text = parsedJson['text'];
}
}

但我无法得到结果所以我删除了它

这是代码

import 'package:flutter/material.dart';
import 'package:http/http.dart' show get;
import 'models/teer_model.dart';
import 'dart:convert';


class Appss extends StatefulWidget {
@override
_AppssState createState() => _AppssState();
}

class _AppssState extends State<Appss> {

String result = "1S";

void fetchData ()async{
var response1 = await get("http://motyar.info/webscrapemaster/api/?url=http://teertoday.com/&xpath=/html/body/div[5]/div/table/tbody/tr[3]/td[1]#vws");
var teerModel = json.decode(response1.body);
var line = teerModel["text"].replaceAll(new RegExp(r"(\s\n)"), "");
print(line);

}


@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text("Teer result"),),
floatingActionButton: FloatingActionButton(
onPressed: fetchData,
),
body: Center(
child: Text("The result is: $result"),
),
),
);
}
}

我只想从“文本”中获取数字 54,所以我使用正则表达式

我预计输出将是 54,但我得到了这个错误

image

最佳答案

如果您查看您的 json,您会发现它完全被 [...] 包围着,意味着它是一个 json 数组。 json.decode会将其转换为 Dart List<Map<String, dynamic>> .看起来您想要此数组/列表的第一个/第零个元素。

改变:

var line = teerModel["text"].replaceAll(new RegExp(r"(\s\n)"), "");

var line = teerModel[0]["text"].replaceAll(new RegExp(r"(\s\n)"), "");

别忘了调用setState以便您的小部件自行重建。

关于dart - 在 Dart 中未获得所需的 json 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56198695/

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