使用Swift中json的相同键解码字典

问题描述 投票:0回答:1

我有一个在JSON文件中描述的结构,说该结构名为Dog

struct Dog {
  var color: UIColor
}

我在JSON文件的字典中跟踪我的狗,其中每只狗的名字都充当标识符。因此,我可以使用下一个JSON:

"myDogs": {

  "goodBoy": {
    "color": "#000000"
  },

  "veryGoodBoy": {
    "color": "#FFFFFF
  }

}

[描述我的2条狗,这是一个字典,我(显然)想避免重复的键,因此我希望,如果JSON有2条具有相同键的狗,则在解码类型为myDogs[String: Dog]时(名称)我会得到一些错误。

令我惊讶的是,它没有发生,而是只忽略了第一个狗之后的所有狗,即使用此JSON

"myDogs": {

  "goodBoy": {
    "color": "#000000"
  },

  "veryGoodBoy": {
    "color": "#FFFFFF
  }

  "goodBoy": {
    "color": "#FF0000"
  }

}

我会得到一本包含2条狗的字典,一个名字是黑色的“ goodBoy”,另一个名字是白色的“ veryGoodBoy”。

在解码阶段是否有引发异常(或至少记录错误的方法?)>

提前感谢。

编辑

Does JSON syntax allow duplicate keys in an object?有帮助,但没有回答我的问题。基本上我问的是Swift中有没有一种方法可以在解码阶段引发异常而无需重写JSONDecoder()

[我有一个在JSON文件中描述的结构,说该结构名为Dog struct Dog {var color:UIColor}我在JSON文件的字典中跟踪我的狗,每个狗的名字都起作用.. 。

json swift dictionary codable
1个回答
0
投票

好,所以您想知道是否有一种方法可以通过JSONDecoder检测重复的密钥错误。

© www.soinside.com 2019 - 2024. All rights reserved.