为什么JSON树中的连续数字导致转换为NSDictionary失败?

时间:2018-03-27 19:16:24

标签: json swift nsdictionary

我一直在使用Firebase,在我的JSON树的一部分中,我有一堆连续的数字作为键。

这是树的那一部分的缩写部分:

 "matches" : {
      "1" : {
        "0931-Red" : [
            "John Smith"
        ],
        "2022-Blue" : [
            "Paul Adams"
        ]
      },
      "2" : {
        "1489-Red" : [
            "Matthew Brown"
        ],
        "1565-Blue" : [
            "Ian Fowler"
        ]
      },
      "3" : {
        "1652-Red" : [
            ""
        ],
        "2626-Blue" : [
            ""
        ]
      }
}

当我从Firebase下载并使用它时:

if let r = ref {
    r.child(accessKey).child("matches").observeSingleEvent(of: .value, with: { (snapshot) in
        if let groups = snapshot.value as? NSDictionary {

转换为NSDictionary失败。

但是,当我将"matches"编辑为这样时:

 "matches" : {
      "1" : {
        "0931-Red" : [
            "John Smith"
        ],
        "2022-Blue" : [
            "Paul Adams"
        ]
      },
      "2" : {
        "1489-Red" : [
            "Matthew Brown"
        ],
        "1565-Blue" : [
            "Ian Fowler"
        ]
      },
      "4" : {
        "1652-Red" : [
            ""
        ],
        "2626-Blue" : [
            ""
        ]
      }
}

有效。

我能够将数据转换为NSDictionary

这也可以将第一个"1"更改为"01"并将字符串附加到每个数字的开头,例如"match-1""match-2"等。

即使我的代码有效,但错误仍然困扰着我,因为我不知道为什么它首先出错了。

为什么不能将连续数字用作关键字?

提前致谢!

0 个答案:

没有答案