首页 > 解决方案 > 如何从 json 字符串中获取颜色值并在 Flutter Dart 中使用它

问题描述

我有一个 JSON 分配给一个名为user的变量

 var user= {
'Name':'khan',
'Country':'Pakistan',
'color':'Color(0xffffff)',
};

假设我想从中获取数据并在某处使用它。

 String encodedjson=jsonEncode(user);
    Map <String,dynamic> decodedJson=jsonDecode(encodedjson);
var colordata=decodedJson['color'];

现在我想使用colordata 假设我想将颜色放在容器背景中

IE

 Container(width: 200,height:200,color:colordata,)

这会给我一个错误,因为 colordata 不是Color 类型。那么我应该怎么做才能像这样使用 JSON 颜色。

标签: jsonflutterdartflutter-web

解决方案


您可以将颜色存储为可 JSON 编码的十六进制文字/int,然后将其传递给Color构造函数:

var user= {
'Name':'khan',
'Country':'Pakistan',
'color': 0xffffff,
};
String encodedjson=jsonEncode(user);
Map<String,dynamic> decodedJson=jsonDecode(encodedjson);
var colordata = Color(decodedJson['color']);

推荐阅读