Como consumir arquivos XML ou JSON em Swift?

Gabriel Fonseca
2 min readJun 10, 2024

--

Sem usar API!

Photo by Alexander Sinn on Unsplash

Para esse tutorial usarei como exemplo o conteúdo sobre a Bíblia do thiagobodruk disponível no GitHub.

📌 Para ter acesso aos arquivos que serão usados, abra o link abaixo: https://github.com/thiagobodruk/bible/tree/master/json

  1. Em primeiro lugar, você deve fazer download do arquivo que você deseja, em XML ou JSON, escolhendo a linguagem e a versão desejada da bíblia.
Nesse caso, escolherei o arquivo “pt_aa.json” (Em português e na versão ARA, Almeida Revista e Atualizada)

2. Em segundo lugar, você deverá colocar no seu Xcode o arquivo JSON ou XML baixado.

pt_aa.json

3. Agora, iremos criar uma estrutura que conversará com o arquivo JSON:

▶️ Crie um arquivo chamado BookModel.

import Foundation

struct BookModel: Codable {
let abbrev: String
let chapters: [[String]]
let name: String
}

abbrev: Livros bíblicos abreviados (“Gn” -> Gênesis).

chapters: Capítulos bíblicos, sendo um Array com os versículos.

name: Nome dos livros bíblicos.

4. Em seguida iremos realizar um Decode para uma estrutura que aceite os dados do JSON:

▶️ Crie um arquivo chamado BibleController.

import Foundation

class BibleController {

var booksAA: [BookModel] = []

func fetchAA() {
do {
if let path = Bundle.main.path(forResource: "pt_aa", ofType: "json"),
let jsonData = try String(contentsOfFile: path).data(using: .utf8) {

let books = try JSONDecoder().decode([BookModel].self, from: jsonData)
self.booksAA = books
}
} catch {
print("Error fetching data: \(error)")
}
}
}

Veja a seguir o passo a passo do código:

  1. Crie uma variável para conversar com o BookModel.
  2. Faça uma função de fetchAA.
  3. Não esqueça de colocar o nome do arquivo corretamente e o seu tipo.

Consumir arquivos XML ou JSON em Swift sem o uso de uma API pode parecer uma tarefa desafiadora, mas com um pouco de conhecimento e prática, você perceberá que é mais simples do que parece.

Espero que este tutorial tenha sido útil e que você se sinta mais confiante para enfrentar desafios semelhantes no futuro.

Good Code!

--

--