0

この呼び出しを使用して作成された JSON 配列があります。

guard let json = (try? JSONSerialization.jsonObject(with: content, options: JSONSerialization.ReadingOptions.mutableContainers)) as? [Any] else {
    print("This is not JSON!!!")
    return
}

次のコードを使用して、配列内の JSON オブジェクトから要素を取得して表示しようとしています。

struct sWidget: Codable{
    var createdBy: String
    var createdDate: Date
    var status: String
    var widgetNumber: String
    var updatedBy: String
    var updatedDate: Date
}


do {
    let decoder = JSONDecoder()
    for (index, value) in json.enumerated() {
        let currentWidget = try decoder.decode(sWidget.self, from: json[index] as! Data)
        let currentNum = currentWidget.widgetNumber
            //print(currentNum)
        widgetNums.append(currentNum)
    }
}
catch {
    print("decoding error")
}

コードはコンパイルされますが、実行すると出力に次のエラーが表示されます。

タイプ '__NSDictionaryM' (0x1063c34f8) の値を 'NSData' (0x1063c1090) にキャストできませんでした。2018-08-09 09:41:02.666713-0500 TruckMeterLogScanner[14259:1223764] タイプ '__NSDictionaryM' (0x1063c34f8) の値を 'NSData' (0x1063c1090) にキャストできませんでした。

まだ調査中ですが、何かヒントがあれば教えてください。

4

2 に答える 2