[Swift5] Obtenez des informations de tableau (individuelles) à partir de JSON à l'aide de la bibliothèque'SwiftyJSON '

Qu'est-ce que Swifty JSON

Une bibliothèque pour gérer facilement JSON. Il peut être implémenté avec un code plus simple en utilisant une bibliothèque lors de l'analyse de JSON.

Veuillez vous référer au document ci-joint. https://github.com/SwiftyJSON/SwiftyJSON

Affichage des points

Cette fois, je ne pense pas que l'analyse sera effectuée en référence au JSON acquis dans l'article ** [Swift5] Conversion des résultats d'analyse acquis par «IBM Watson Tone Analyzer» en JSON ** posté la dernière fois. Si vous n'avez pas encore vu l'article précédent, veuillez d'abord le lire.

▼ Article précédent https://qiita.com/nkekisasa222/items/3304cb77d78d9adfe8ac

Installation de la bibliothèque

Tout d'abord, installez le pod dans le Podfile.

podfile.


# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'nom de l'application' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  #Pods pour le nom de l'application

pod 'SwiftyJSON'
end

Ensuite, exécutez $ pod install dans le terminal pour` importer le Swifty JSON de l'application dans le contrôleur que vous souhaitez utiliser.

ViewController.swift


import UIKit
import SwiftyJSON //Décrivez ici

Confirmation de la valeur à acquérir cette fois

Dans l'article précédent, j'ai converti les résultats de l'analyse au format JSON. Voici le contenu.

JSON.


JSON: {
  "sentences_tone" : [
    {
      "sentence_id" : 0,
      "text" : "Team, I know that times are tough!",
      "tones" : [
        {
          "score" : 0.80182699999999996,
          "tone_id" : "analytical",
          "tone_name" : "Analytical"
        }
      ]
    },
    {
      "sentence_id" : 1,
      "text" : "Product sales have been disappointing for the past three quarters.",
      "tones" : [
        {
          "score" : 0.77124099999999995,
          "tone_id" : "sadness",
          "tone_name" : "Sadness"
        },
        {
          "score" : 0.68776800000000005,
          "tone_id" : "analytical",
          "tone_name" : "Analytical"
        }
      ]
    },
    {
      "sentence_id" : 2,
      "text" : "We have a competitive product, but we need to do a better job of selling it!",
      "tones" : [
        {
          "score" : 0.50676299999999996,
          "tone_id" : "analytical",
          "tone_name" : "Analytical"
        }
      ]
    }
  ],
  "document_tone" : {
    "tones" : [
      {
        "score" : 0.61650000000000005,
        "tone_id" : "sadness",
        "tone_name" : "Sadness"
      },
      {
        "score" : 0.82988799999999996,
        "tone_id" : "analytical",
        "tone_name" : "Analytical"
      }
    ]
  }
}

Cette fois, je veux obtenir les valeurs de "" score "" et "" tone_name "" dans le tableau "" tones "" de "document_tone" ".

Effectuer une analyse JSON

ViewController.swift


let jsonValue = JSON(json)
let tonesScore = jsonValue["document_tone"]["tones"][self.count]["score"].float

Tout d'abord, créez une jsonValue avec la valeur json à laquelle le résultat de l'analyse des émotions est affecté en tant que JSON. (Désolé pour la façon déroutante de le dire lol)

Ensuite, analysez. jsonValue [" document_tone "] [" tones "] [self.count] [" score "] .float Vous pouvez obtenir la valeur en spécifiant comme ceci. C'est vraiment simple et facile à comprendre, n'est-ce pas?

En guise de mise en garde

(1) Il ne peut être obtenu que si la structure du tableau de «jsonValue», qui est le résultat de l'analyse, est comprise. (2) On suppose que le "self.count" utilisé cette fois définit le "nombre de variables membres". De plus, «soi» est décrit parce qu'il est dans la fermeture.

Vous devriez maintenant pouvoir obtenir le score. Cependant, étant donné que la valeur du score est redondante telle quelle, la virgule décimale est arrondie pour l'obtenir.

ViewController.swift


let jsonValue = JSON(json)
let tonesScore = jsonValue["document_tone"]["tones"][self.count]["score"].float

//Obtenez des notes en arrondissant la virgule décimale
let decimal = tonesScore
let decimalPoint = ceil(decimal! * 100)/100
let tone_score = decimalPoint

Ensuite, récupérez le tone_name.

ViewController.swift


let tonesName = jsonValue["document_tone"]["tones"][self.count]["tone_name"].string
let tone_name = tonesName

Maintenant que vous avez le " score " et le " tone_name " dans le tableau " tones " de " document_tone ", vérifions avecprint (). ..

ViewController.swift


print("=====Confirmation de l'acquisition individuelle=====")
print("document_tone.score    : \(tone_score)")
print("document_tone.tone_name: \(tone_name)")

résultat...

=====Confirmation de l'acquisition individuelle=====
document_tone.score    : 0.62
document_tone.tone_name: Optional("Sadness")

Vous pouvez l'obtenir en arrondissant fermement la virgule décimale. Au fait, «tristesse» de «ton_nom» signifie «tristesse», donc vous pouvez voir que l'analyse des émotions est également effectuée.

C'est un succès!

finalement

Cette fois, j'ai posté sur la bibliothèque SwiftyJSON qui rend JSON facile à gérer. Récemment, je pense qu'il existe de nombreuses opportunités d'entrer en contact avec JSON tout en apprenant rapidement. En ce sens, Swifty JSON est une bibliothèque indispensable car elle peut être décrite simplement.

Veuillez vous y référer! Merci d'avoir regardé jusqu'à la fin!

Recommended Posts

[Swift5] Obtenez des informations de tableau (individuelles) à partir de JSON à l'aide de la bibliothèque'SwiftyJSON '
[Ethereum] Obtenir des informations de bloc à l'aide de web3j
Obtenir des informations sur l'appelant à partir de la trace de la pile (Java)
[Java] Obtenir des informations sur les balises à partir de fichiers musicaux
Obtenez "2-4, 7, 9" de [4, 7, 9, 2, 3]
[Java] Récupère des valeurs de manière aléatoire dans un tableau