Я уже насыщен глядя на другие решения, но ни один не будет работать, так что здесь идет: Я хочу, чтобы преобразовать этот строкового значения, повторяю: строковое значение, к JSONObject или JSONArray :Преобразования строки в JSONArray с SwiftyJson врежется
[["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>
также будет отлично работать для меня.
UPDATE: Принятый ответ работает, я использовал replace() для очистки входной строки. Плюс, я сделал дополнительный шаг, чтобы завершить преобразование строки в массив JSON. Обратите внимание, что в моем случае я не могу контролировать, как идет строка, так как она -is-.
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. Вы хотите 'Словарь', но он уже '[Dictionary ]', вам не нужен SwiftyJSON, просто получите доступ к массиву. В этом вопросе нет JSON. –
Moritz
@ EricD. Это строка, строковое представление [Dictionary] в любом случае. Вопрос: как я могу преобразовать его в объект JSON или в объект Dictionary? –
Josh
@ EricD. Там, если вы не просматриваете чтение, я подчеркнул это. – Josh