Ios 如何在swift 2中解析和显示JSON?

Ios 如何在swift 2中解析和显示JSON?,ios,json,swift,swift2,Ios,Json,Swift,Swift2,我正在尝试构建一个可以使用JSON获取和显示信息的应用程序。 目前,我可以在我的viewdidload中使用以下代码在调试区域打印JSON内容: var url = NSURL(string: "http://myjsonlocation.php") if url != nil { let task = NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: { (dat

我正在尝试构建一个可以使用JSON获取和显示信息的应用程序。 目前,我可以在我的viewdidload中使用以下代码在调试区域打印JSON内容:

 var url = NSURL(string: "http://myjsonlocation.php")        
    if url != nil {
        let task = NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in
            print(data)


            if error == nil {

                var urlContent = NSString(data: data!, encoding: NSASCIIStringEncoding) as NSString!

                print(urlContent)

            }
        })
        task.resume()
以下是json的内容:

 {
 "playlist": [
{
  "id": "",
  "nama": "",
  "penyanyi": ""
},
{
  "id": "***",
  "nama": "PENIPUAN MENGATASNAMAKAN PT TASPEN (PERSERO)",
  "penyanyi": "PT TASPEN (PERSERO) tidak pernah membagikan deviden. Apabila ada oknum yang mengatasnamakan PT TASPEN (PERSERO) dengan menjanjikan akan membagikan deviden atau hal lainnya diluar ketentuan, itu tidak benar (PENIPUAN)"
},
{
  "id": "***",
  "nama": "JALIN KERJA SAMA LAYANAN PEMBAYARAN PENSIUN, TASPEN GANDENG BANK YUDHA BAKTI",
  "penyanyi": "PT TASPEN (PERSERO) jalin kerjasama dengan PT Bank Yudha Bhakti dalam membayarkan THT, THT Multiguna, dan Pensiun kepada peserta Taspen. Kerjasama ini diharapkan dapat menambah titik layanan kepada peserta terutama dalam memberikan pilihan bagi peserta dalam memilih kantor bayar. "
},
{
  "id": "***",
  "nama": "MENUJU PERUBAHAN MELALUI TASPEN EXECUTIVE MEETING",
  "penyanyi": "Dalam rangka meningkatkan kompetensi SDM, selama 3 hari seluruh jajaran direksi, kepala divisi, kepala desk dan kepala unit di kantor pusat beserta para kepala kantor cabang Taspen seluruh Indonesia berkumpul di Rumah Perubahan Rhenald Kasali. Mengusung tema Perubahan, peserta mengikuti rangkaian kegiatan yang ada. Dimulai dengan myelin based outbond, peserta kegiatan dibagi menjadi 6 kelompok, mengikuti permainan group yang mengedepankan kerja sama tim dalam persaingan antar tim yang kompetitif. Selesai rangkaian outbond, kegiatan berlanjut pada acara pembukaan Taspen Executive Meeting oleh Direktur Utama PT TASPEN (PERSERO), Iqbal Latanro. "
},
{
  "id": "***",
  "nama": "TASPEN BUKA KANTOR CABANG KE-53 DI LHOKSEUMAWE",
  "penyanyi": "Dalam rangka meningkatkan kualitas layanan dengan mendekatkan diri kepada peserta, Taspen kembali meresmikan Kantor Cabangnya yang ke-53. Kantor Cabang yang berlokasi di Jalan Merdeka Kota, Lhokseumawe, diresmikan secara langsung oleh Walikota Lhokseumawe, Suaidi Yahya bersama Direktur Utama PT TASPEN (PERSERO), Iqbal Latanro. Dengan dibukanya Kantor Cabang baru ini, peserta tidak perlu jauh-jauh untuk datang ke Kantor Cabang Banda Aceh. Suadi Yahya, selaku Walikota Lhokseumawe berkenan meresmikan Kantor Cabang yang ke-53 ini, dengan penuh rasa syukur dan bangga. Seperti yang disampaikan beliau dalam pidato sambutannya. Rasa syukur karena kota Lhokseumawe terpilih sebagai kota dimana cabang Taspen ini berdiri yang berada dalam cakupan layanan di wilayah Nangroe Aceh Darussalam. Kini, peserta yang berada di wilayah Kabupaten Aceh Tengah, Aceh Utara, Aceh Timur, Aceh Tenggara, Bireuen, Gayo Lues, Aceh Tamiang, Bener Meriah, Kota Langsa, dan Kota Lhokseumawe dapat langsung menuju ke Kantor Cabang Lhokseumawe untuk mengurus klimnya."
},
{
  "id": "***",
  "nama": "BUPATI ENDE RESMIKAN KANTOR CABANG TASPEN DI ENDE",
  "penyanyi": "Ende, 19 Januari 2016, PT TASPEN (PERSERO) Kantor Cabang Ende yang ke 52 kini hadir di Jalan Pahlawan No. 20 Kelurahan kota Raja Kecamatan Ende Utara, beroperasi mulai 1 Januari 2016 dan peresmiannya dilaksanakan Selasa 19 Januari 2016 oleh Bupati Ende Ir. Marselinus Y.W Petu dan Direktur Utama PT Taspen (Persero) Iqbal Latanro. Dalam sambutannya, Direktur Utama menjelaskan dengan dibukanya Kantor Taspen Cabang Ende adalah mewujudkan upaya Taspen mendekatkan layanannya dengan peserta. Dengan berbagai inovasi layanan yang ada yaitu melalui pembukaan kantor cabang baru seperti yang terlaksana di Ende, layanan klim otomatis, mobil layanan Taspen, office channeling, service point, call center Taspen, dan Taspen Mobile Application for Smartphone, Taspen berupaya untuk memberikan kenyamanan dan kemudahan bagi peserta dalam mengakses layanan yang ada."
}
]
}
在我的应用程序中解析和显示JSON内容的最佳方式是什么?(JSON的内容是关于最近的新闻)
我正在使用Xcode 7和swift 2.0

使用
NSJSONSerialization

public class func JSONObjectWithData(data: NSData, options opt: NSJSONReadingOptions) throws -> AnyObject

有一个很棒的库,名为SwiftyJSON,专门为处理JSON而设计。

对于您的问题,假设您希望在“索引”处获取播放列表的id(假设为int)

  let jsonData = JSON(data)
  print (jsonData["playlist"][index]["id"].intValue) // index refers to the list index
我使用SwiftyJSON:

例如:

let json = JSON(yourJsonObject)
let playlist = json("playlist")
if playlist.count > 0 {
    for index in 0...playlist.count-1 {
        self.ids.append(playlist[index]["id"].intValue)
        self.namas.append(playlist[index]["nama"].stringValue)
        ...
    }
现在您有了一个ID和名称数组

    let data = JSON(data)
    print(data["key Of dictionary"].stringValue) //stringValue can be intValue or any other according to your use


看看这个:为什么是负数?这个问题用例子回答了。
print(data["key OF dictionary"][index]["key"].stringValue) // here you can change index according to need which index value you need