我有这种数据格式
message": [
{
"id": 15989,
"title": "xxx",
"body": "xxx",
"type": "abc",
"data_hash": "{\"id\":\"3098\",\"number\":1}",
}, .....]
如果我这样写
print(message['data']['type']);
我可以得到abc,但是如果我写
print(message['data']['data_hash']);
,则会得到无效的参数错误。为什么?我想在data_hash中获取
number
。这是完整的代码
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print("===== onMessage ====");
try {
print(message['data']['data_hash']);
} catch (e) {
print(e.toString());
}
});
最佳答案
data_hash行是一个json。因此,您需要对该行进行解码才能使用。
final data_hash_map = jsonDecode(message['data']['data_hash']);
print(data_hash_map); // { "id": 3098, "number": 1 }
print(data_hash_map["number"]); // for number
关于flutter - 解码JSON抖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60648725/