我目前正在构建一个应用程序,以从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,但我却收到此错误
答案 0 :(得分:2)
如果查看json,您会发现它完全被if __name__=='__main__':
app.run(port=5000,debug=True,use_reloader=True)
包围着,这意味着它是一个json数组。 [...]
会将其转换为Dart json.decode
。看来您想要此数组/列表的第一个/第零个元素。
更改:
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)"), "");
,以便您的窗口小部件重新构建。