2016-07-25 4 views
2

Я новичок в Swift, так что любезно извините меня, если этот вопрос звучит слишком глупо. Я пытаюсь создать объект JSON из вывода Array словаря, который должен иметь Curly Brackets ("{}") после каждого объекта, а не квадратные скобки ("[]"). Мой код приведен ниже.Как удалить квадратные скобки из словаря и заменить фигурные скобки?

import UIKit 

var locations = Array<Dictionary<String, String>>() 

var myLocations = ["pqr","xyz"] 

myLocations.forEach {_ in 
    var dictionary = Dictionary<String, String>() 
    dictionary["string1"] = "hello" 
    dictionary["string2"] = "world" 
    locations.append(dictionary) 

} 
print(locations) 

Выход на это: - [[ "string2": "мир", "string1": "привет"], [ "string2": "мир", "string1": "привет" ]] \ п

Однако я требую его как: - [{ "строке2": "мир", "string1": "привет"}, { "строке2": "мир", "string1": " hello "}] \ n

Я знаю, что один из способов сделать это - с помощью фильтрующих массивов, но я подозреваю, что может быть более простой способ, который я не смогу найти после поиска в различных документах на Swift. Не могли бы вы помочь мне в этом. Заранее спасибо.

+2

Вы хотите JSON? Затем вы можете использовать 'NSJSONSerialization'. – Larme

+1

Да, вы правы. Я попробовал это и, похоже, работает. Спасибо! :) – Skullbash

ответ

2

Выход

[["string2": "world", "string1": "hello"], ["string2": "world", "string1": "hello"]] 

, потому что это массив Swift Swift словарей.

Чтобы преобразовать этот объект в JSON, не разобрать и заменить символы, которые сами, используйте NSJSONSerialization вместо:

do { 
    let jsonData = try NSJSONSerialization.dataWithJSONObject(locations, options: []) 
    if let jsonString = String(data: jsonData, encoding: NSUTF8StringEncoding) { 
     print(jsonString) 
    } 
} catch { 
    print(error) 
} 

Печать:

[{ "string2": "мир",» string1 ":" привет "}, {" string2 ":" мир», "string1": "привет"}]

Мы используем dataWithJSONObject для преобразования Swift объекта JSON да ta, то мы используем String(data:, encoding:) для преобразования данных JSON в строку JSON .

+0

Спасибо за быстрый ответ! Я просто попробовал это, и это сработало. :) – Skullbash

+0

Добро пожаловать. :) – Moritz

Смежные вопросы