Dart:从 Firebase 快照中解码 Json
Posted
技术标签:
【中文标题】Dart:从 Firebase 快照中解码 Json【英文标题】:Dart: decode Json from a Firebase snapshot 【发布时间】:2019-05-19 04:29:47 【问题描述】:这可能是一个微不足道的问题,我尝试从 Firebase 快照中解码 json,这是 json 的结构:
firebaseKey1 : img1:value1
firebaseKey2 : img2:value2
firebaseKey3 : img3:value3
这是我尝试过的:
DatabaseReference firebaseRef = FirebaseDatabase.instance.reference();
firebaseRef.child('...').once().then((DataSnapshot snapshot)
Map<dynamic,dynamic> map = snapshot.value;
map.forEach((key, jsonString)
print('$key: $jsonString'); // jsonString = img1:value1
//how to get value1 inside jsonString?
);
);
有什么想法吗?
【问题讨论】:
我认为你不需要解码。它应该返回已经解码的值。 @GünterZöchbauer 对***.com/questions/53886373/… 有任何想法吗?我真的被困住了.. :( 【参考方案1】:也许 OP 正在寻找的是:
var parsedJSON = snapshot.value;
print('img1 : ' + parsedJSON['img1']);
【讨论】:
【参考方案2】:您不需要json.decode
。返回值已经解码。
key1:value1
是
的结果final Map<String,dynamic> value = 'key1': 'value1';
print(value.toString());
【讨论】:
嘿,君特。从日志输出看来,Julien 可能有一个嵌套对象。jsonString.forEach()
在这种情况下会起作用吗?
一开始我也是这么想的,但它是无效的JSON,因为它缺少引号,但它与Darts Map.toString()
的输出匹配。
我用整个json结构编辑了问题,确实如何在jsonString中获取“值”?需要另一个 Map"img1":"value1"
将是有效的 JSON
这个问题到底是什么?您收到错误消息吗?以上是关于Dart:从 Firebase 快照中解码 Json的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 因无效安全(DART/FLUTTER)而无法工作