Cannot subscript a value of type 'JSON' with an index of type 'STRING'

Works for a Living picture Works for a Living · Nov 6, 2016 · Viewed 8.5k times · Source

This was working in Swift2 but now in Swift3 (after automatic conversion) I'm getting an error:

if self.entry["scheduler"] || self.entry["owner"]

Cannot subscript a value of type 'JSON' with an index of type 'STRING'

The values of self.entry["scheduler"] etc. are boolean but I think the issue is the indices, "scheduler" and "owner"

Of course, I reference other indices of self.entry in the exact same way and get no error when I build.

xcode auto updated and I am living in a nightmare.

Answer

DavidA picture DavidA · Nov 9, 2016

Substitute whatever type you're expecting for the .string in the first two lines

let scheduler = self.entry["scheduler"].string
let owner = self.entry["owner"].string

if(scheduler != nil || owner != nil)
{
    // Take care here - scheduler and owner are both optionals
}