Music_Player3/relax.offline.mp3.music/MP/MPPositive/Models/JsonStructs(js文件结构)/MPPositive_JsonGenres.swift
2024-07-12 19:33:23 +08:00

232 lines
13 KiB
Swift

//
// MPPositive_JsonGenres.swift
// relax.offline.mp3.music
//
// Created by Mr.Zhou on 2024/7/11.
//
import UIKit
///
struct JsonGenres: Codable {
let contents:Contents?
let header:Header?
enum CodingKeys: String, CodingKey {
case contents = "contents"
case header = "header"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
contents = try values.decodeIfPresent(Contents.self, forKey: .contents)
header = try values.decodeIfPresent(Header.self, forKey: .header)
}
struct Contents: Codable {
let singleColumnBrowseResultsRenderer:SingleColumnBrowseResultsRenderer?
enum CodingKeys: String, CodingKey {
case singleColumnBrowseResultsRenderer = "singleColumnBrowseResultsRenderer"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
singleColumnBrowseResultsRenderer = try values.decodeIfPresent(SingleColumnBrowseResultsRenderer.self, forKey: .singleColumnBrowseResultsRenderer)
}
struct SingleColumnBrowseResultsRenderer: Codable {
let tabs:[Tab]?
enum CodingKeys: String, CodingKey {
case tabs = "tabs"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
tabs = try values.decodeIfPresent([Tab].self, forKey: .tabs)
}
struct Tab:Codable {
let tabRenderer:TabRenderer?
enum CodingKeys: String, CodingKey {
case tabRenderer = "tabRenderer"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
tabRenderer = try values.decodeIfPresent(TabRenderer.self, forKey: .tabRenderer)
}
struct TabRenderer: Codable {
let content:Content?
enum CodingKeys: String, CodingKey {
case content = "content"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
content = try values.decodeIfPresent(Content.self, forKey: .content)
}
struct Content: Codable {
let sectionListRenderer:SectionListRenderer?
enum CodingKeys: String, CodingKey {
case sectionListRenderer = "sectionListRenderer"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
sectionListRenderer = try values.decodeIfPresent(SectionListRenderer.self, forKey: .sectionListRenderer)
}
struct SectionListRenderer: Codable {
let contents:[Content]?
enum CodingKeys: String, CodingKey {
case contents = "contents"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
contents = try values.decodeIfPresent([Content].self, forKey: .contents)
}
struct Content: Codable {
let gridRenderer:GridRenderer?
enum CodingKeys: String, CodingKey {
case gridRenderer = "gridRenderer"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
gridRenderer = try values.decodeIfPresent(GridRenderer.self, forKey: .gridRenderer)
}
struct GridRenderer: Codable {
let items:[Item]?
enum CodingKeys: String, CodingKey {
case items = "items"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
items = try values.decodeIfPresent([Item].self, forKey: .items)
}
struct Item: Codable {
let musicNavigationButtonRenderer:MusicNavigationButtonRenderer?
enum CodingKeys: String, CodingKey {
case musicNavigationButtonRenderer = "musicNavigationButtonRenderer"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
musicNavigationButtonRenderer = try values.decodeIfPresent(MusicNavigationButtonRenderer.self, forKey: .musicNavigationButtonRenderer)
}
struct MusicNavigationButtonRenderer: Codable {
///
let buttonText:ButtonText?
///
let solid:Solid?
///
let clickCommand:ClickCommand?
enum CodingKeys: String, CodingKey {
case buttonText = "buttonText"
case solid = "solid"
case clickCommand = "clickCommand"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
buttonText = try values.decodeIfPresent(ButtonText.self, forKey: .buttonText)
solid = try values.decodeIfPresent(Solid.self, forKey: .solid)
clickCommand = try values.decodeIfPresent(ClickCommand.self, forKey: .clickCommand)
}
//
struct ButtonText: Codable{
//
let runs:[Run]?
enum CodingKeys: String, CodingKey {
case runs = "runs"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
runs = try values.decodeIfPresent([Run].self, forKey: .runs)
}
struct Run: Codable {
//
let text:String?
enum CodingKeys: String, CodingKey {
case text = "text"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
text = try values.decodeIfPresent(String.self, forKey: .text)
}
}
}
//
struct Solid: Codable {
///
let leftStripeColor:Int?
enum CodingKeys: String, CodingKey {
case leftStripeColor = "leftStripeColor"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
leftStripeColor = try values.decodeIfPresent(Int.self, forKey: .leftStripeColor)
}
}
//
struct ClickCommand: Codable {
let browseEndpoint:BrowseEndpoint?
enum CodingKeys: String, CodingKey {
case browseEndpoint = "browseEndpoint"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
browseEndpoint = try values.decodeIfPresent(BrowseEndpoint.self, forKey: .browseEndpoint)
}
struct BrowseEndpoint: Codable {
let browseId:String?
let params:String?
enum CodingKeys: String, CodingKey {
case browseId = "browseId"
case params = "params"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
browseId = try values.decodeIfPresent(String.self, forKey: .browseId)
params = try values.decodeIfPresent(String.self, forKey: .params)
}
}
}
}
}
}
}
}
}
}
}
}
}
struct Header: Codable {
let musicHeaderRenderer:MusicHeaderRenderer?
enum CodingKeys: String, CodingKey {
case musicHeaderRenderer = "musicHeaderRenderer"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
musicHeaderRenderer = try values.decodeIfPresent(MusicHeaderRenderer.self, forKey: .musicHeaderRenderer)
}
struct MusicHeaderRenderer: Codable {
let title:Title?
enum CodingKeys: String, CodingKey {
case title = "title"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
title = try values.decodeIfPresent(Title.self, forKey: .title)
}
struct Title: Codable {
let runs:[Run]?
enum CodingKeys: String, CodingKey {
case runs = "runs"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
runs = try values.decodeIfPresent([Run].self, forKey: .runs)
}
struct Run: Codable {
let text:String?
enum CodingKeys: String, CodingKey {
case text = "text"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
text = try values.decodeIfPresent(String.self, forKey: .text)
}
}
}
}
}
}