使用Swift序列化JSON中的键

使用Swift序列化JSON中的键,json,swift,Json,Swift,我正在尝试序列化JSON字符串。这个: "user": { apellidos = "Vasco Fornas"; "created_at" = "<null>"; email = "m@gmail.com"; "id_usuario" = 122; imagen = "1ufm2Fmifoto.jpeg"; name = ""; "nivel_usuario" = 1; nombre = Modesto; un

我正在尝试序列化JSON字符串。这个:

"user": {
    apellidos = "Vasco Fornas";
    "created_at" = "<null>";
    email = "m@gmail.com";
    "id_usuario" = 122;
    imagen = "1ufm2Fmifoto.jpeg";
    name = "";
    "nivel_usuario" = 1;
    nombre = Modesto;
    unidad = 0;
    "updated_at" = "<null>";
}, "uid": , "error": 0]
{
    apellidos = "Vasco Fornas";
    "created_at" = "<null>";
    email = "m@gmail.com";
    "id_usuario" = 122;
    imagen = "1ufm2Fmifoto.jpeg";
    name = "";
    "nivel_usuario" = 1;
    nombre = Modesto;
    unidad = 0;
    "updated_at" = "<null>";
}
第一次打印显示完整的JSON字符串,第二次打印显示“user”项

如何获取“用户”项下所有键的值?

您可以尝试以下方法,例如:

if let mensaje = json["user"] as? [String:String] {
    for key in mensaje.keys {
        let currentValue = mensaje[key] as? String ?? "" // cast whatever you like
        print(currentValue)
    }
}

或者将值作为数组获取

if let mensaje = json["user"] as? [String:String] {
    let yourValues = Array(mensaje.values)
    print(yourValues)
}

如果您正在搜索“apellidos”:


谢谢,它很有效。唯一的问题是,通过这种方式,每个键值分配都会重复多次。我添加了另一个解决方案,用于一次性获取所有值。使用第二个选项,如何获取键“apellidos”的值?添加了如何查找“apellidos”,我建议使用快速JSON。JSON看起来很奇怪。根源是什么?用户是字典数组的键吗?
if let mensaje = json["user"] as? [String:String] {
    let yourValues = Array(mensaje.values)
    print(yourValues)
}
var apellidos?
if let mensaje = (json["user"] as? [String:String]) {
    apellidos = mensaje["apellidos"] as? String ?? ""
}
print(apellidos)