Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何从响应体获取令牌值?_Json_Flutter_Dart - Fatal编程技术网

Json 如何从响应体获取令牌值?

Json 如何从响应体获取令牌值?,json,flutter,dart,Json,Flutter,Dart,我试图从response.body获取令牌值,并将其存储在共享首选项中 以下是我得到的JSON响应: {"meta":{"error":false,"message":"","statusCode":200},"response":{"token":"JhbGciOiJIUzI1NiJ9.MiOiJodHRwczovL3N0Z62Q_NQJcK0dFCKiUOsl-k","user":{"id":12,"name":"suuu","firstName":"sss","lastName":"ss"

我试图从response.body获取令牌值,并将其存储在共享首选项中

以下是我得到的JSON响应:

{"meta":{"error":false,"message":"","statusCode":200},"response":{"token":"JhbGciOiJIUzI1NiJ9.MiOiJodHRwczovL3N0Z62Q_NQJcK0dFCKiUOsl-k","user":{"id":12,"name":"suuu","firstName":"sss","lastName":"ss","icNumber":null,"email":"wew@example.com","description":"Retails Test","gender":"Male","phoneNumber":"0123456789","website":"retailsexample.com","createdAt":"2017-09-15 11:27:42","updatedAt":"2019-08-21 16:08:32","oldEmailData":null,"profilePictures":[{"width":795,"height":800
我试图像这样打印令牌,但它显示空结果:

  print('access token is -> ${json.decode(response.body)[ 'token']}');
所以我有这个代码来获取和存储令牌:

  if(request.statusCode == 200) {
  jsonResponse = json.decode(response.body);
  if(jsonResponse != null) {
    setState(() {
      _isLoading = false;
    });
    sharedPreferences.setString("token", jsonResponse['token']);
    Navigator.of(context).pushAndRemoveUntil(MaterialPageRoute(builder: (BuildContext context) => MainPage()), (Route<dynamic> route) => false);
  }
if(request.statusCode==200){
jsonResponse=json.decode(response.body);
if(jsonResponse!=null){
设置状态(){
_isLoading=false;
});
setString(“token”,jsonResponse['token']);
Navigator.of(context).pushandremoveintil(MaterialPageRoute(builder:(BuildContext context)=>MainPage(),(Route-Route)=>false);
}

那么,如何从response.body获取令牌呢?

下面的一行将令牌放入字符串变量中:

String token = jsonResponse['response']['token']
在代码中,只需替换

sharedPreferences.setString("token", jsonResponse['token'])

sharedPreferences.setString("token", jsonResponse['response']['token'])