Swift-使用可解码来解码仅包含字符串的JSON数组

Swift-使用可解码来解码仅包含字符串的JSON数组,json,swift,Json,Swift,我有一个示例JSON,其中它只是一个字符串数组,没有键,我想使用可解码的协议来使用JSON并从中创建一个简单的模型 json如下所示: { "names": [ "Bob", "Alice", "Sarah"] } 只是一个简单数组中的字符串集合 我不确定的是,如何使用新的SwiftDecodable协议在没有密钥的情况下将其读入模型中 我看到的大多数示例都假设JSON有一个键 即: 上述示例假设json是一个键值;如何使用可解码协议在没有密钥的情况下对JSON进行反编码 非常感谢此JSON的

我有一个示例JSON,其中它只是一个字符串数组,没有键,我想使用
可解码的
协议来使用JSON并从中创建一个简单的模型

json如下所示:

{ "names": [ "Bob", "Alice", "Sarah"] }
只是一个简单数组中的字符串集合

我不确定的是,如何使用新的Swift
Decodable
协议在没有密钥的情况下将其读入模型中


我看到的大多数示例都假设JSON有一个键

即:

上述示例假设json是一个键值;如何使用可解码协议在没有密钥的情况下对JSON进行反编码


非常感谢

此JSON的对应结构是

struct User: Decodable {
   let names: [String]
}
解码

let model = try decoder.decode(User.self, from: dataResponse)
把名字都记下来

let names = model.names
或者传统上没有JSONDecoder的开销

let model = try JSONSerialization.jsonObject(with: dataResponse) as? [String:[String]]

对于这个简单的json结构,我想最好不要创建任何结构并使用

let model = try decoder.decode([String:[String]].self, from: dataResponse)
print(model["names"])

适合您的模型的json是

{

    "names": [{ 
          "userId": 2,
         "id": 23,
         "title": "gdgg",
         "completed": true

    }]
}


struct Root: Codable {
    let names: [User]
}

struct User: Codable {
    let userId, id: Int
    let title: String
    let completed: Bool

}

或者干脆
let names=try decoder.decode(User.self,from:dataResponse)。names
需要注意的是,您当前的用户模型与当前的json没有关系“我看到的大多数示例都假设json有一个键。”您的json确实有一个键。很抱歉,我可能错过了这个键
{

    "names": [{ 
          "userId": 2,
         "id": 23,
         "title": "gdgg",
         "completed": true

    }]
}


struct Root: Codable {
    let names: [User]
}

struct User: Codable {
    let userId, id: Int
    let title: String
    let completed: Bool

}