作者:深深i | 来源:互联网 | 2023-07-17 11:21
如何像这样使用JSONArray
中的字符串创建flutter
:
String abc= "[{ "msg": "msg 1","asc": "asc 1" },......{ "message1": "msg 2","asc": "asc 2" }]";
尝试关注
class Data {
final String msg;
final String asc;
const Data(this. msg,this. asc);
}
List parseData(String abc) {
final parsed = json.decode(abc).cast
它将从String返回jsonArray的列表。
,
如果只是解析的一小部分,则可以按照上述解决方案进行手动解析。
我建议您使用一些工具为您生成它。
https://plugins.jetbrains.com/plugin/12737-json-to-dart-class-jsontodartclass-
这个IntelliJ插件,您只需在其中粘贴JSON,它将为您生成所有样板代码。
如果您不是IntelliJ用户。您可以使用这个网站
https://javiercbk.github.io/json_to_dart/
要提前尝试https://flutter.dev/docs/development/data-and-backend/json
,
最好的方法是创建模型。
class MyDataModel{
String msg;
String asc;
MyDataModel({this.msg,this.asc});
MyDataModel.fromJson(Map json) {
msg = json['msg'];
asc = json['asc'];
}
}
然后导入
import 'dart:convert';
最后您可以做到,
String abc =
'[{ "msg": "msg 1","asc": "asc 1" },{ "msg": "msg 2","asc": "asc 2" }]';
@override
Widget build(BuildContext context) {
List dataList = parseJson(abc);
return Scaffold(
appBar: AppBar(),body: Text(dataList[1].msg),);
}
List parseJson(String str) {
return List.from(
json.decode(str).map((x) => MyDataModel.fromJson(x)));
}
,
String source = //json string array
List fromJson(String source) => fromMap(json.decode(source));
static List fromMap(Map map) {
return map((m) => T(
msg:m['msg']
asc:m['asc']));
}