IOS / Swift / JSON: анализ вложенного JSON с помощью swiftyJSON - PullRequest
0 голосов
/ 02 июня 2018

У меня проблемы с анализом следующего вложенного JSON.Я могу получить первый уровень, но не последующие уровни.Кто-нибудь может предложить правильный синтаксис, чтобы получить «гнев»?Заранее благодарим за любые предложения.

JSON:

{
    "document_tone" =     {
        "tone_categories" =         (
                        {
                "category_id" = "emotion_tone";
                "category_name" = "Emotion Tone";
                tones =                 (
                                        {
                        score = "0.218727";
                        "tone_id" = anger;
                        "tone_name" = Anger;
                    },  
                );
            },
    );
} 

Код:

if let result = response.result.value as? [String:Any] {
    if let tone = result["document_tone"] as? [String:Any] {
        print(tone) //This prints ok
        if let cat = tone["tone_categories"] as?  String {
            print("here is%@",cat)//prints as null
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 02 июня 2018

Для печати Anger на tone_name

    if let result = response.result.value as? [String:Any] {
        if let tone = result["document_tone"] as? [String:Any] {

            if let cat = tone["tone_categories"] as?  [[string:Any]]{
                if let dic = cat[0] as?  [string:Any]{

                    if let tones = dic ["tones"] as?  [[String:Any]] {

                        if let toneDic = tones[0] as?  [string:Any]{
                            print(toneDic["tone_name"])   //print Anger
                        }
                    }
                }
            }
        }
    }
0 голосов
/ 02 июня 2018

Можно попробовать

if let result = response.result.value as? [String:Any] {
   if let tone = result["document_tone"] as? [String:Any] {
       print(tone)  
      if let cat = tone["tone_categories"] as? [[String:Any]] {
            if let dic = cat[0] as? [String:Any] {
                if let catId = dic["category_id"] as? String {
                  print("catId is %@",catId) 
                }
                if let catName = dic["category_name"] as? String {
                  print("catName is %@",catName ) 
                }
                if let alltones = dic["tones"] as? [[String:Any]] {
                   print("alltones is %@",alltones) 
                    if let innerTone = alltones[0] as? [String:Any] {
                       print(innerTone["tone_name"])
                       print(innerTone["tone_id"])
                    }
                 }
             }
      }
   }
}
...