Как структурировать загружаемый пакет контента, включающий абзацы? - PullRequest
0 голосов
/ 15 сентября 2018

Я делаю приложение для флэш-карт. Каждая флешка имеет следующее - тема - вопрос - ответ

Ответом может быть несколько абзацев, например короткая статья.

Например: тема: питание вопрос: что такое палео? Ответ: Палео - это низкоуглеводная диета. \ п Это основано на определенном мясе и овощах как основной элемент диеты. На палео нельзя есть хлеб.

CSV не выглядит как вариант, если я не добавлю \ n что-то вроде ~~

В этом абзаце также могут быть кавычки. Я хотел бы иметь возможность загрузить пакет карточек для автономного использования, поэтому простое извлечение данных из базы данных не было бы идеальным для этого.

Есть ли хороший формат / структура, которую я могу использовать, чтобы связать пачку карточек для легкой загрузки / анализа / сохранения в локальной системе?

1 Ответ

0 голосов
/ 15 сентября 2018

Вы можете представить свои данные следующим образом:

struct Card: Codable {
    let topic: String
    let question: String
    let answer: String
}

Тогда, если у вас есть массив let card = [Card], вы можете преобразовать в JSON, используя JSONEncoder и из JSON в Card, используя JSONDecoder

let cards = [Card(topic: "Nutrition", question: "What is paleo?", answer: "Paleo is a low carb diet.\nIt relies on specific meats and vegetables as the staple of the diet. You cannot eat bread on paleo.")]

let data = try JSONEncoder().encode(cards)

let string = String(data: data, encoding: .utf8)!

print(string)

// [{"topic":"Nutrition","question":"What is paleo?","answer":"Paleo is a low carb diet.\nIt relies on specific meats and vegetables as the staple of the diet. You cannot eat bread on paleo."}]

let newCards = try JSONDecoder().decode([Card].self, from: data)
...