Анализ JSON в представлении таблицы с использованием SwiftIOS

Программируем под IOS
Ответить
Anonymous
 Анализ JSON в представлении таблицы с использованием Swift

Сообщение Anonymous »

Я новичок в анализе JSON. Я сделал приложение с одним представлением. Я получил JSON из URL-адреса с помощью этой функции:

Код: Выделить всё

func parseData(){
//created URL
guard let requestURL = URL(string: "https://machla.bh/api-category2") else {return }

//creating URLRequest
var request = URLRequest(url: requestURL)

//setting the method to post
request.httpMethod = "POST"

//creating the post parameter by concatenating the keys and values from text field
var postParameters = ""

postParameters += "key=LpfyirxoNOfP8wPns4nZqTw6DQ4wY A2q6yvpKsof6gkYDTykVXSEonTO2VB HE2zRdqrvsyoyMVyRagWtKAtVuOuNs c7QW5KrgbXS8SqPZ7sIDlPEvhBWyo5 NoObAcor3GlO87nRSaFdxhKDRTiBkK 3pFsTQyffzuBdIBiM8zFra6Yh8NbbC QQaratgFFE2hzLouNEIHq88xaSqum1 C0z7g325i3hixT5oLSo5tvhpvvdTJO WohfqGSakeGz7hsAU"

postParameters += "&path=59"

postParameters += "&language_id=1"

//adding the parameters to request body
request.httpBody = postParameters.data(using: .utf8)

//creating a task to send the post request
let session = URLSession.shared

let task = session.dataTask(with: request) { data, response, error in

guard error == nil else {
print("error is \(error!.localizedDescription)")
return
}
guard let data = data else {
print("No data was returned by the request!")
return
}

// print data from request
let str = String(data: data, encoding: .utf8)!
print(str)
for eachFetechedCountry in str
{
let eachCountry=eachFetechedCountry as! [String:Any]
let category = eachCountry["categories"] as! String
let product=eachCountry["products"] as! String
self.fetchcountry.append(Country(categories: category, products: product))

}
self.countryTableView.reloadData()

}

//executing the task
task.resume()

}
Я пытаюсь прочитать категории и продукты из JSON, используя следующий оператор в приведенной выше функции. Эти заявления не работают. Как читать категории и товары из JSON?

Код: Выделить всё

 for eachFetechedCountry in str
{
let eachCountry=eachFetechedCountry as! [String:Any]
let category = eachCountry["categories"] as! String
let product=eachCountry["products"] as! String
self.fetchcountry.append(Country(categories: category, products: product))

}
Для представления категорий и продуктов в виде таблицы я создал класс с именем Country:

Код: Выделить всё

class Country{

var product:String
var category:String

init(categories :String, products:String)
{
self.category=categories
self.product=products
}

}
Для заполнения категорий и продуктов в виде таблицы я написал:

Код: Выделить всё

func tableView(_ tableViewr: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = countryTableView.dequeueReusableCell(withIdentifier: "cell")
cell?.textLabel?.text=fetchcountry[indexPath.row].category
cell?.detailTextLabel?.text=fetchcountry[indexPath.row].product
return cell!

}
Как заполнить категории и товары в виде таблицы?
По этой ссылке можно скачать образец проекта для исправления? https://drive.google .com/file/d/0B5pNDpbvZ8SnY3RicXpGN1FYbXc/view?usp=sharing

Подробнее здесь: https://stackoverflow.com/questions/469 ... sing-swift
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»