无法从颤振中的 jsonDecoded 变量中提取密钥

Failed to extract the keys from a jsonDecoded variable in flutter

我是Flutter新手。我正在尝试从 jsonDecoded 变量中获取所有密钥。我已尽我所能来获得这些钥匙。但是我做不到。

所以我的问题是如何以最简单和最短的方式从 jsonDecoded 值中获取所有密钥?

这是我的代码:

    Future<String> getData() async {
    var response = await http.get(
        Uri.encodeFull(
            "https://my-json-server.typicode.com/dipcse07/demoJSON/db"),
        headers: {"Accept": "application/json"});

    //print(response.body);
    print('tapped');

    setState(() {
      data = jsonDecode(response.body.toString());

      collegeDataLenght = data['CollegeName1'].length;
      count = collegeDataLenght;
      teachersInfo = data['CollegeName1'];
      print(teachersInfo[0]['avatarImage']);
 });
}

*****需要从 data 中获取所有密钥**

我从 api link 获得的数据是

{
   "CollegeName1":[
      {
         "teacherName":"Md Sazid hasan dip",
         "teacherID":"2345",
         "avatarImage":"url",
         "address":"9/2, shenbari Road, Shanki Para Bazar Mymensingh",
         "status":"Active",
         "joinDate":"date",
         "resignDate":"present"
      },
      {
         "TeacherName":"Talha Azadi",
         "teacherID":"2345",
         "avatarImage":"url",
         "address":"9/2, shenbari Road, Shanki Para Bazar Mymensingh",
         "status":"Active",
         "joinDate":"date",
         "resignDate":"present"
      }
   ],
   "CollegeName2":[
      {
         "teacherName":"Md Sazid hasan dip",
         "teacherID":"2345",
         "avatarImage":"url",
         "address":"9/2, shenbari Road, Shanki Para Bazar Mymensingh",
         "status":"Active",
         "joinDate":"date",
         "resignDate":"present"
      },
      {
         "TeacherName":"Talha Azadi",
         "teacherID":"2345",
         "avatarImage":"url",
         "address":"9/2, shenbari Road, Shanki Para Bazar Mymensingh",
         "status":"Active",
         "joinDate":"date",
         "resignDate":"present"
      }
   ]
}

您已解析 json 将 return 一个 Map which has a .keys 属性 您可以使用:

void main() {
  final parsedJson = jsonDecode(json) as Map<String, dynamic>;
  print(parsedJson.keys);
}