为什么 SwiftyJSON 无法解析 swift 中的数组字符串 3

Why SwiftyJSON cannot parse Array String in swift 3

{
    "item": [
        {
            "pid": 89334,
            "productsname": "Long Way",
            "address": "B-4/7, Malikha Housing, Yadanar St., Bawa Myint Ward,",
            "telephone": "[\"01570269\",\"01572271\"]"
        },
        {
            "pid": 2,
            "productsname": "Myanmar Reliance Energy Co., Ltd. (MRE)",
            "address": "Bldg, 2, Rm# 5, 1st Flr., Hninsi St., ",
            "telephone": "[\"202916\",\"09-73153580\"]"
        }
    ],
    "success": true
}

我无法使用以下代码从 JSON 对象上方解析 telephone 值。

for item in swiftyJsonVar["item"].array! {
    if let jsonDict = item.dictionary {
        let pid = jsonDict["pid"]!.stringValue
        let productsname = jsonDict["productsname"]!.stringValue

        var telephones = [String]()
        for telephone in (jsonDict["telephone"]?.array)! {
            telephones.append(telephone.stringValue)
        }
    }
}

我想一一获取并显示phone以上JSON个数。我不确定为什么上面的代码不起作用。请帮我解决一下,谢谢。

因为telephone是一个看起来像数组的字符串,而不是数组本身。服务器对这个数组进行了非常糟糕的编码。您需要再次 JSON-ify 以循环遍历电话号码列表:

for item in swiftyJsonVar["item"].array! {
    if let jsonDict = item.dictionary {
        let pid = jsonDict["pid"]!.stringValue
        let productsname = jsonDict["productsname"]!.stringValue

        var telephones = [String]()
        let telephoneData = jsonDict["telephone"]!.stringValue.data(using: .utf8)!
        let telephoneJSON = JSON(data: telephoneData)

        for telephone in telephoneJSON.arrayValue {
            telephones.append(telephone.stringValue)
        }
    }
}