【问题标题】:Dart: decode Json from a Firebase snapshotDart:从 Firebase 快照中解码 Json
【发布时间】: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?
     });
 });

有什么想法吗?

【问题讨论】:

标签: javascript firebase firebase-realtime-database dart


【解决方案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?
    • 看起来还是不像 JSON。 {"img1":"value1"} 将是有效的 JSON
    • 这个问题到底是什么?您收到错误消息吗?
    猜你喜欢
    • 2022-01-21
    • 2022-01-21
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多