以下是我的 JSON 的输出
{
"success": true,
"data": {
"ones": [{
"id": "2",
"username": "LM10002"
},
{
"id": "6",
"username": "LM10006"
}
],
"twos": [{
"id": "3",
"username": "LM10003"
},
{
"id": "8",
"username": "LM10008"
}
],
"threes": [{
"id": "4",
"username": "LM10004"
}],
"fours": [{
"id": "5",
"username": "LM10005"
},
{
"id": "14",
"username": "GT10014"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
这里的键ones, twos, threes, fours是我尝试解析并能够获取的值的动态键值
DownLineModel({this.success, this.data});
DownLineModel.fromJson(Map<String, dynamic> json) {
success = json['success'];
data = json['data'];
print(data);
Run Code Online (Sandbox Code Playgroud)
我如何解析 json 并找到关键术语并再次解析它。
只需查看我根据您提供的 json 为您制作的示例即可。
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:json_parsing_example/models.dart';
import 'package:http/http.dart' as http;
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(home: HomePage());
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
double value;
String json = '''
{
"success": true,
"data": {
"ones": [{
"id": "2",
"username": "LM10002"
},
{
"id": "6",
"username": "LM10006"
}
],
"twos": [{
"id": "3",
"username": "LM10003"
},
{
"id": "8",
"username": "LM10008"
}
],
"threes": [{
"id": "4",
"username": "LM10004"
}],
"fours": [{
"id": "5",
"username": "LM10005"
},
{
"id": "14",
"username": "GT10014"
}
]
}
}
''';
@override
void initState() {
super.initState();
getData();
}
getData() {
Map mapValue = jsonDecode(json);
// This is where you iterate via the data object
// that is the value which is key,value pair
List<Data> data = List();
mapValue['data'].forEach((key, value) {
List<User> user = List();
value.forEach((item) {
user.add(User(id: item['id'], username: item['username']));
});
data.add(Data(name: key, userList: user));
});
data.forEach((element) {
print(element.name + " : " + '${element.userList.length}');
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(child: Text('s')),
);
}
}
class Data {
final String name;
final List<User> userList;
Data({this.name, this.userList});
}
class User {
final String id;
final String username;
User({this.id, this.username});
}
Run Code Online (Sandbox Code Playgroud)
让我知道它是否有效。
| 归档时间: |
|
| 查看次数: |
5192 次 |
| 最近记录: |