3

我在提取从推送通知接收到的数据值时遇到问题: Message data: {default: {"event":"text","id":"23Vlj0BwSA7xKtsf4IbFCHAIsNr"}},我尝试了很多.map方法等,但我总是得到null值。是否有一种简单的方法可以从 中获取数据message.data,以便我可以从键中提取event键的值和 id 值id

4

2 回答 2

2

你可以试试下面的代码吗?

import 'dart:convert';

const rawJson =
'{"default": {"event":"text","id":"23Vlj0BwSA7xKtsf4IbFCHAIsNr"}}';

void parse() {
  final value = json.decode(rawJson);
  print(value['default']['event']);
  print(value['default']['id']);
}

输出: 在此处输入图像描述

于 2022-01-10T15:45:51.560 回答
0

感谢@sanjay 的帮助,他的解决方案对我不起作用,但已经足够接近了,只有这两个小改动有效:

注意:除了@sanjay 的回答,我必须将 json.decode 更改为,jsonDecode并且必须放置一个变量var而不是常量值。我可以理解varand const,但我不确定 jsonDecode 方法为什么我必须更改它,但它的工作原理是这样的。

var value = jsonDecode(message.data['default']);
      var event = value['event'];
      var id = value['id'];
      print(id);

输出:

23Vlj0BwSA7xKtsf4IbFCHAIsNr

谢谢您的帮助!

于 2022-01-10T16:30:18.120 回答