Json字符串和Map类型转换
import 'dart:convert'
// Json转Map
Json.decode(strData)
// Map转Json
Map userInfo = {"username": "wjx", "age": 22};
print(json.encode(userInfo));
使用Dart原生http实现网络请求实例
dependencies:
...
http: ^0.12.0+2
import 'dart:convert'; // 引入json和map转换库
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http; // 导入dart http请求库
class HttpPage extends StatefulWidget {
HttpPage({Key key}) : super(key: key);
_HttpPageState createState() => _HttpPageState();
}
class _HttpPageState extends State<HttpPage> {
List list = [];
@override
void initState() {
// TODO: implement initState
super.initState();
_getData();
Map userInfo = {"username": "wjx", "age": 22};
print(json.encode(userInfo));
}
// 请求数据
_getData() async {
var apiUrl = "https://www.wanandroid.com/article/list/1/json";
var result = await http.get(apiUrl);
if (result.statusCode == 200) {
print(json.decode(result.body)["data"]["datas"]);
setState(() {
list = json.decode(result.body)["data"]["datas"];
});
} else {
print(result.statusCode);
}
}
// 提交数据
_postData() async {
var apiUrl = "https://www.wanandroid.com/user/login";
var result = await http
.post(apiUrl, body: {'username': "wjxbless", 'password': "********"});
if (result.statusCode == 200) {
print(json.decode(result.body));
} else {
print(result.statusCode);
}
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
appBar: AppBar(
title: Text("请求数据"),
),
body: list.length>0? ListView(
children: list.map((value){
return ListTile(
title: Text(value["title"]),
);
}).toList(),
) : Text("加载中...")
);
}
}