簡體   English   中英

如何從 flutter 中的 JSON 響應中獲取特定數據?

[英]How can I reach a specific data from JSON response in flutter?

我正在練習 flutter,我需要使用 JSON 格式的響應數據。 這是我的 POST 請求:

    final response = await http.post(url,
        headers: {"Content-type": "application/json", "accept": "/"},
        body: json.encode({
          'username': id,
          'password': pwd,
          'deviceId': devid,
        }));
    if (response.statusCode == 200) {
      check = true;
      print("OK");
    } else {
      check = false;
      print("NOT OK");
    }
    print(response.body);
  }

和我的用戶數據 class:

class userData {
  String deviceId;
  String accessToken;
  String name;
  String surname;
}
userData globaluserData;

這是兩個單獨的.dart 文件。 所以,在我的回復中,我得到了這些數據,但我怎樣才能讓它像 -globaluserData.name = response.name- 我做了一些研究,但老實說,我無法理解和適應我的項目的解決方案。 提前致謝!

您可以將您的響應轉換為 JSON,然后像字典一樣訪問數據。

if (response.statusCode == 200) {
  var jsonResponse = jsonDecode(response.body);

  globaluserData.name = jsonResponse['name']
} else {
...

您可以使用應用程序 state 提供程序來訪問整個項目中的變量。 您的提供者將如下所示:

import 'package:flutter/material.dart';

class AppStateProvider extends ChangeNotifier {
  UserData _currentUser;

  void setCurrentUser(UserData currentUser) {
    _currentUser = currentUser;

    //Call this whenever there is some change in any field of change notifier.
    notifyListeners();
  }


  //Getter for current user 
  UserData get currentUser => _currentUser;
}

您可以從這里閱讀更多內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM