嵌入式json数据分为三个级别

时间:2015-03-25 17:48:10

标签: json swift ios8 xcode6

我遇到一些json数据的麻烦。我正在制作一个天气应用程序,我解析的大部分信息都适用但天气

这是整个json数据的议会输出,这是我遇到麻烦的部分

json的完整输出

{
base = stations;
clouds =     {
    all = 90;
};
cod = 200;
coord =     {
    lat = "39.74";
    lon = "-104.98";
};
dt = 1427305893;
id = 5419384;
main =     {
    humidity = 84;
    pressure = 1022;
    temp = "274.07";
    "temp_max" = "275.35";
    "temp_min" = "272.15";
};
name = Denver;
rain =     {
    1h = "0.25";
};
snow =     {
    1h = "0.17";
};
sys =     {
    country = US;
    id = 532;
    message = "0.07829999999999999";
    sunrise = 1427288058;
    sunset = 1427332632;
    type = 1;
};
visibility = 4023;
weather =     (
            {
        description = "light rain";
        icon = 10d;
        id = 500;
        main = Rain;
    },
            {
        description = snow;
        icon = 13d;
        id = 601;
        main = Snow;
    },
            {
        description = fog;
        icon = 50d;
        id = 741;
        main = Fog;
    },
            {
        description = mist;
        icon = 50d;
        id = 701;
        main = Mist;
    }
);
wind =     {
    deg = 20;
    gust = "14.9";
    speed = "12.9";
};

} 我也打印了钥匙

[base, id, dt, snow, main, coord, sys, wind, weather, visibility, clouds, cod, name, rain]

我试图将它保存为数组但是当我将arry [0]设置为字符串时它会崩溃

我的函数代码

 func populateLabels(weatherData: NSData){

    var jsonError: NSError?

    let json = NSJSONSerialization.JSONObjectWithData(weatherData, options: nil, error: &jsonError) as NSDictionary
  println(json)

    if let city = json["name"] as? String {

        CityName.text = city
    }
    println(json.allKeys)

    if let coord = json["coord"] as? NSDictionary {

        if let longi = coord["lon"] as? Double {
            long.text = String(format: "%.2f", longi)
        }

        if let lati = coord["lat"] as? Double {
            lat.text = String(format: "%.2f", lati)
        }

    }

    if let main = json["main"] as? NSDictionary {

        if let temper = main["temp"] as? Double {
            temp.text = String(format: "%.2f", temper)
        }


    }

如果有人知道如何获得令人敬畏的描述 谢谢js

1 个答案:

答案 0 :(得分:1)

我明白了...感谢blacksquare,larme,chirag90的帮助

if let tasks = json["weather"] as? NSArray
    {
        if let task = tasks[0] as? NSDictionary
        {
            if let taskName = task["description"] as? NSString
            {
                println(taskName)
            }
        }
    }