使用 SwiftyJson 将字符串转换为 JSONArray 崩溃

Converting String to JSONArray with SwiftyJson crashes

我已经在寻找其他解决方案,但 none 会起作用,所以这里是: 我想将此 STRING VALUE 转换为 JSONObject 或 JSONArray:

[["demo": "Default", "tint": "ff00fd", "icon": "http://someurl.com/icon.jpg", "language": "en-US", "endpoint": "http://pres.artifutions.com/traveldemoapp/", "title": "Travel Demo"], ["demo": "Demo 2", "tint": "ff99fd", "icon": "http://someurl.com/icon.jpg", "language": "en-US", "endpoint": "http://pres.artifutions.com/traveldemoapp/", "title": "Second Demo"], ["demo": "Demo 3", "tint": "ff99fd", "icon": "http://someurl.com/icon.jpg", "language": "en-US", "endpoint": "http://pres.artifutions.com/traveldemoapp/", "title": "Third Demo"], ["demo": "Demo 4", "tint": "ff99fd", "icon": "http://someurl.com/icon.jpg", "language": "en-US", "endpoint": "http://pres.artifutions.com/traveldemoapp/", "title": "Fourth Demo"], ["title": "zz", "tint": "ff00fd", "icon": "(default)", "language": "nld-NLD", "endpoint": "http://pres.artifutions.com/traveldemoapp/", "demo": "z"], ["demo": "Add Demo..."]]

当我尝试将该字符串转换为 JSON 对象时,使用此代码,它崩溃了:

let jConfigs = JSON(myString).array
        print("=======json")
        print(jConfigs![0])

问题是什么?将其转换为 Dictionary<String,String> 对我来说也很好用。

更新: 接受的答案有效,我使用 replace() 来清理输入字符串。 另外,我做了一个额外的步骤来完成将 String 转换为 JSON 数组。请注意,在我的例子中,我无法控制字符串的来源,它是原样。

            var ss=InputString.replace("], [",withString: "}, {")
            ss=ss.replace("[[",withString: "[{")
            ss=ss.replace("]]",withString: "}]")
            if let data = ss.dataUsingEncoding(NSUTF8StringEncoding){
                do{
                    if let array = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers)  as? [AnyObject] {
                       print(array)
                       }
                    }
                 }

您提供的 json 格式无效。

更正一个(对象的大括号):

[{"demo": "Default", "tint": "ff00fd", "icon": "http://someurl.com/icon.jpg", "language": "en-US", "endpoint": "http://pres.artifutions.com/traveldemoapp/", "title": "Travel Demo"}, {"demo": "Demo 2", "tint": "ff99fd", "icon": "http://someurl.com/icon.jpg", "language": "en-US", "endpoint": "http://pres.artifutions.com/traveldemoapp/", "title": "Second Demo"}]