Я хотел бы создать вложенную строку JSON установленных семейств шрифтов и связанных с ними шрифтов (которые я мог бы позже отправить в веб-просмотр), используя Swift 5.
У меня проблемы с пониманием вложенных объектов Swift. Требуется ли для JSONSerialization определенный тип структуры объекта?
var obj: [String: Any] = [:]
for family in UIFont.familyNames {
var fonts: [String] = []
for font in UIFont.fontNames(forFamilyName: family) {
fonts.append(font)
}
obj[family] = fonts
}
do {
let json = try JSONSerialization.data(withJSONObject: obj, options: .prettyPrinted)
print(json) // Outputs ‘9415 bytes’ rather than JSON string (below)
} catch {}
Я хотел бы, чтобы строка JSON выглядела примерно так:
{
“Didot”:[“Didot”,”Didot-Italic”,”Didot-Bold”],
“Impact”:[”Impact”],
// etc
}





let string = String(data: json, encoding: .utf8)!
print(string)
Вы должны посмотреть на использование
CodableиJSONEncoder, но чтобы ответить на ваш вопрос,jsonявляется экземпляромData. Преобразуйте его в строку, используяString(data: json, encoding:.utf8)