由于类型转换错误,无法将JSON数组分组

亚当·朗斯纳

我有一个API,它返回一个字典数组,我正在尝试date使用Swift的Dictionay(grouping:)功能按每个项目中对它进行分组JSON如下所示:

[
    { "date": "2018-12-12", "name": "abc" },
    { "date": "2018-12-12", "name": "def" },
    { "date": "2018-12-13", "name": "def" },
    ...
]

我有以下快速代码会生成编译错误:

let json = response.result.value as! Array<[String:AnyObject]>
let groupedByDate = Dictionary(grouping: json, by: { (item) -> String in
    return (item as! [String:AnyObject])["date"]
})

编译时出现此错误:

Cannot subscript a value of type '[String : AnyObject]' with an index of type 'String'

和这个警告:

Cast from '_' to unrelated type '[String : AnyObject]' always fails

我很困惑,因为item变量显然是类型,[String:AnyObject]并且我能够通过在调试器中索引到json中po json[0]["date"]

马特

您的代码自相矛盾。当你说

let groupedByDate = Dictionary(grouping: json, by: {
    (item) -> String in

您正在签订合同,将从该关闭中返回String。

但是当你说

return (item as! [String:AnyObject])["date"]

您返回的是AnyObject,而不是String。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法将变量数组分配给类型数组

使用jQuery按JSON数组分组

由于类类型的转换错误,因此无法通过

打字稿通过鉴别器属性将鉴别联合类型的数组分组为记录

将JSON数据数组分组到另一个数组

由于TypeScript错误,无法在类型化数组上使用indexOf

如何将多个 json 对象数组分组为新对象?

由于错误,我无法将 str 转换为 int

由于类型错误IntegrityError的对象无法通过JSON序列化,因此无法使用DRF将数据插入模型

使用类型转换将char数组分配给struct

按数组分组

将数组组分组为单独的子数组组

Android JSON解析“无法将org.json.JSONObject类型的数据转换为JSONArray”错误

由于错误,无法将 json 字符串转换为 POJO 预期为字符串,但为 BEGIN_ARRAY

无法将类型“ [_]”的值转换为指定的类型“数组”

使用 lodash 将数组分组为树“子”结构

PHP如何将值相同的多维数组分组

如何相应地将这些数组分组?

将数组分组为一个

按百分比将数组分组

如何将具有相似值的数组分组

按值将xml中的数组分组

将数组分组/减少到对象的特定键

将数组分组到javascript中的对象

Swift错误:无法将类型'()'转换为指定类型'布尔'

尝试保存数组时,CoreData中出现错误。'无法将'String'类型的值转换为预期的参数类型'NSManagedObject'

Swift JSON错误:无法将类型'__NSDictionaryM'的值强制转换为'NSArray'

由于没有隐式引用转换,因此无法将类型用作类型参数

获取错误无法将类型为“Newtonsoft.Json.Linq.JObject”的对象转换为类型“Newtonsoft.Json.Linq.JArray”