【发布时间】:2020-03-18 04:11:57
【问题描述】:
我正在创建 swift 应用程序,我想解析 JSON 但首先让我向您展示我的 UI
我在 tableview 单元格中有一个 UITableview 我有 UICollectionView,下面是我的 UserInterface 的屏幕截图
这是我必须解析的JSON
{
"jigyasa_category_list": [
{
"status": "1",
"updated_date": "2019-11-18 17:02:37",
"created_date": "2019-08-28 16:32:22",
"jigyasa_category_image_id": "4",
"jigyasa_sanskrit": "jigyasa cate sanskrit 2",
"jig_cate_id": "7",
"jigyasa": [
{
"image1": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/purple_1.png",
"name_english": "",
"image5": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/purple_5.png",
"name_sanskrit": "",
"images": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/purple_1.png",
"image2": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/purple_2.png",
"name_hindi": "gfdgfd",
"image4": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/purple_4.png",
"image3": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/purple_3.png",
"jigyasa_id": "8"
}
],
"updated_by": "2",
"created_by": "2",
"jigyasa_hindi": "jigyasa cate hindi 1",
"jigyasa_english": "jigyasa cate english 3"
},
{
"status": "1",
"updated_date": "2019-11-13 16:28:43",
"created_date": "2019-08-29 15:07:53",
"jigyasa_category_image_id": "2",
"jigyasa_sanskrit": "dfgh",
"jig_cate_id": "11",
"jigyasa": [
{
"image3": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_3.png",
"jigyasa_id": "5",
"image5": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_5.png",
"name_sanskrit": "n,n,",
"name_english": "n,n,",
"images": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_1.png",
"image2": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_2.png",
"image1": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_1.png",
"image4": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_4.png",
"name_hindi": "n,n,"
},
{
"image3": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_3.png",
"jigyasa_id": "7",
"image5": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_5.png",
"name_sanskrit": "",
"name_english": "",
"images": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_2.png",
"image2": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_2.png",
"image1": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_1.png",
"image4": "http:\/\/192.168.1.115\/swadhyay\/assets\/uploads\/jigyasa_category_boxes\/green_4.png",
"name_hindi": "sadsa"
}
],
"updated_by": "0",
"created_by": "2",
"jigyasa_hindi": "fcgh",
"jigyasa_english": "dfh"
},
{
"created_date": "2019-10-11 17:07:09",
"updated_date": "2019-10-11 17:10:04",
"jigyasa_hindi": "hindi",
"jig_cate_id": "14",
"jigyasa_english": "english",
"created_by": "2",
"jigyasa_category_image_id": "2",
"updated_by": "2",
"status": "1",
"jigyasa_sanskrit": "sanskrit",
"jigyasa": [
]
},
{
"created_date": "2019-11-04 10:48:06",
"updated_date": "2019-11-04 10:48:06",
"jigyasa_hindi": "hfgh",
"jig_cate_id": "15",
"jigyasa_english": "fghfg",
"created_by": "2",
"jigyasa_category_image_id": "2",
"updated_by": "0",
"status": "1",
"jigyasa_sanskrit": "gfhfgh",
"jigyasa": [
]
}
],
"message": "Jigyasa Category",
"success": "1"
}
现在我将向您展示我为实现这一目标所做的工作,但对我不起作用
为此,我创建了如下所示的模型类
struct Jigyasa_category_list : Codable {
let jigyasa_english : String?
let jigyasa_hindi : String?
let jigyasa_sanskrit : String?
let jigyasa : [Jigyasa]?
init(jigyasa_english: String?,jigyasa_hindi: String?,jigyasa_sanskrit: String,jigyasa: [Jigyasa]?) {
self.jigyasa_english = jigyasa_english
self.jigyasa_hindi = jigyasa_hindi
self.jigyasa_sanskrit = jigyasa_sanskrit
self.jigyasa = jigyasa
}
}
struct Jigyasa : Codable {
let image3 : String?
let image1 : String?
let name_english : String?
let images : String?
let name_hindi : String?
let jigyasa_id : String?
let image5 : String?
let image4 : String?
let name_sanskrit : String?
let image2 : String?
init(image3: String?,image1: String?,name_english: String,images: String?,name_hindi: String?,jigyasa_id: String?,image5: String?,image4: String?,name_sanskrit: String?,image2: String?) {
self.image3 = image3
self.image1 = image1
self.name_english = name_english
self.images = images
self.name_hindi = name_hindi
self.jigyasa_id = jigyasa_id
self.image5 = image5
self.image4 = image4
self.name_sanskrit = name_sanskrit
self.image2 = image2
}
}
现在集合视图在 tableview 单元格中,所以我在 UITableview 单元格中调用 api,如下所示
var jigyasaData = [Jigyasa_category_list]()
func jigyasaCatList(){
let preferences = UserDefaults.standard
let uid = "u_id"
let acTkn = "acc_tkn"
let u_ID = preferences.object(forKey: uid)
let A_Token = preferences.object(forKey: acTkn)
let params = ["user_id": u_ID!, "access_token": A_Token!]
print(params)
Alamofire.request(apijigyasacategorylist, method: .post, parameters: params).responseJSON(completionHandler: {(response) in
switch response.result{
case.success(let value):
let json = JSON(value)
print(json)
let data = json["jigyasa_category_list"]
if data == []{
}else{
data.array?.forEach({ (jList) in
let j_list = Jigyasa_category_list(jigyasa_english: jList["jigyasa_english"].stringValue, jigyasa_hindi: jList["jigyasa_hindi"].stringValue, jigyasa_sanskrit: jList["jigyasa_sanskrit"].stringValue, jigyasa: jList["jigyasa"].arrayObject as? [Jigyasa])
self.jigyasaData.append(j_list)
})
}
self.collView.reloadData()
case.failure(let error):
print(error.localizedDescription)
}
})
}
但不明白如何在 JSON 中 jigyasa 数组中的集合视图中解析,谁能告诉我如何将数组中的数据解析到集合视图中
我的意思是我想在来自 json 的 jigyasa 数组的 collectionview 中显示数据
【问题讨论】:
-
你使用 SwiftyJSON 来解析 JSON 数据吗?
-
是的,我用过
SwiftyJSON -
app.quicktype.io 过去你的 json
-
再见 struct Welcom
-
即使你不需要任何库来解析(SwiftyJSON)
标签: ios json swift uitableview uicollectionview