Je reçois un Json à partir de mon serveur. Mon serveur JSON est
let action = message["action"] print(action)
3 Réponses :
comme VADIAN SIR STRT> a dit, la valeur de la clé message forte> est une autre chaîne JSON, afin d'obtenir la valeur de espère que cela aide cela aide. P> < / p> jsonserialization code> comme ci-dessous et obtenez la valeur de la clé
Je reçois une erreur en exécution pour une mauvaise exécution en première ligne
Vérifiez ceci: Convertir la chaîne JSON en Objet JSON dans Swift 4
Convertir le texte du message dans JSON: P>
let messageStr = message as! String
let data = messageStr.data(using: .utf8)!
do {
if let jsonArray = try JSONSerialization.jsonObject(with: data, options : .allowFragments) as? [Dictionary<String,Any>]
{
print(jsonArray) // use the json here
let action = jsonArray["action"]
print(action) // your action is here
} else {
print("bad json")
}
} catch let error as NSError {
print(error)
}
Obtenir cette erreur, la valeur de type 'json' n'a aucun membre de "données" sur la première ligne
S'il vous plaît ne vous recommandez pas d'utiliser jsonserialization code> lorsque nous avons codable code>
Je recommande entièrement SWIFTYJSON et jsonserialization entièrement, utilisez Utilisez-le pour analyser le JSON intérieur contenu dans codable code> à la place. Message p> struct Message: Codable {
let action: String
let msg: Msg
}
struct Msg: Codable {
let headline, subhead, brief: String
let contentID: Int
enum CodingKeys: String, CodingKey {
case headline, subhead, brief
case contentID = "content_id"
}
}
if let messageStr = userInfo["message"] as? String {
let messageData = messageStr.data(using: .utf8 )!
let message = try JSONDecoder().decode(Message.self, from: messageData)
}
Xcode se plaignent de remplacer "décodeur" avec "décodage" après la fin de l'automobile, il ne peut pas convertir la valeur de type '[Anyhashable: tout]' à l'argument attendu 'Data'
Je reçois des données de userinfo, mais quand je passe cette variable, je gatant la même erreur ici Ie quelle passe, laissez Fullinfo = essayer jsondecoder (). Décode (FullInfo.elf, de: userinfo)
Il donne une erreur "Impossible de convertir la valeur de type '[anyhashable: tout]" sur l'argument attendu "données" "
On dirait que vous passez le résultat d'une initiale jsonserialization code> appel. Ne faites pas cela, transmettez les données brutes au décodeur (c.-à-d. Ce que vous aviez utilisé pour atteindre ce dictionnaire.
J'ai été mis à jour ma question espère que cela vous aidera à comprendre mon problème ..
Donc, vous n'obtenez pas JSON (sauf dans le message code>), mais plutôt une notification push. Mise à jour de ma réponse.
Maintenant, obtenez cette valeur d'erreur de type '[Anyhashable: tout]' n'a aucun membre de membre '
La valeur du message est une autre chaîne JSON. Vous devez le désérialiser avec
jsonserialization code> oudécodable code>, vous pouvez accéder aux clés et aux valeurs.Comment puis-je faire cela peut s'il vous plaît partager un exemple
S'il vous plaît, des questions sur la sérialisation JSON sont l'une des questions les plus fréquemment posées ici.