簡體   English   中英

如何在Swift中解析JSON?

[英]How to parse JSON in Swift?

我有一些看起來像這樣的 JSON數據,我正在嘗試在Swift中進行解析。

[
  [
    {
        a: "1",
        b: "2"
    },
    [
        {
            c: "3",
        },
        {
            d: "4",
        }
    ]
 ]

]

        let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments)

        if let myArray = json[0] as? [[AnyObject]] {
            for myObject in myArray {
                print("This works!\(myObject)")
            }
        }

但是,我嘗試的任何方法似乎都無效-任何幫助將不勝感激。

您可以使用SwiftyJSON- https://github.com/SwiftyJSON/SwiftyJSON

或根據您的JSON方案創建一個類,嘗試對其進行解析。

喜歡:

class object
{
  let data = Array<subObject>()
}
class subObject
{
  let subData = Array<Dictionary<AnyObject,AnyObject>>()
}

此代碼段不是JSON。 如果是JSON,則密鑰將是字符串,如下所示:

[
  [
    {
        "a": "1",
        "b": "2"
    },
    [
        {
            "c": "3",
        },
        {
            "d": "4",
        }
    ]
 ]
]

無論如何, 在您的屏幕截圖中,我們看到您的JSON已經被解析

您在圖像中顯示的也不是JSON,而是包含數組和字典的數組...


但是,可以說您的JSON實際上是有效的,缺少的引號只是一個復制/粘貼問題。

然后,要實現您的目標,必須將NSJSONSerialization的結果轉換為正確的JSON格式, 然后才能訪問內部對象。

像這樣:

do {
    if let json = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [[AnyObject]] {
        if let myArray = json.first {
            for myObject in myArray {
                print("This works!\(myObject)")
            }
        }
    }
} catch let error as NSError {
    print(error.localizedDescription)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM