วิธีที่จะทำให้รูปแบบ api เรียกใช้ struct กับเบอร์อยู่ในแฟ้ม language

0

คำถาม

ในกรณีที่อีกรายละเอียด:

ฉันพยายามที่จะเข้าถึงระดับจากการรูปแบบ api(เชื่อมโยงด้านล่างนี้)ที่มีอยู่ในมันเป็นโครงสร้างเป็นเบอร์อยู่ที่จุดเริ่มต้นหนึ่งในระดับ(25th_percentile). ฉันไม่สามารถสร้างเป็นอย่างต่อเนื่องในรุ่นของฉันเพราะฉันไม่สามารถเริ่มการปล่อยให้คุณค่ากับเบอร์(ie,25 ใน 25th_percentile). ว่าคุณสามารถเข้าถึงข้อมูลที่ถนน 25 ตัระดับร้อยละ?

ของรหัสคือที่ตามมา ตอนที่ฉันใช้ enum ที่แนะนำให้ฉันเป็น"ไม่เหมือนกัจะ decodable โพรโทคอล"ข้อผิดพลาด

     //
 //  SchoolData.swift
 //
 //

 import Foundation

 struct Results: Decodable {
     let results: [SelectedSchool]
 }



 struct SelectedSchool: Decodable, Identifiable {
     let id: Int
     let fed_sch_cd: String
     let latest: LatestData

 }
 struct LatestData: Decodable {
     let school: SchoolDetails
     let admissions: AdmissionsDetails
 }

 struct SchoolDetails: Decodable {
     let name: String
     let school_url: String
 }

 struct AdmissionsDetails: Decodable {
     let admission_rate: AdmissionRateDetails
     let sat_scores: SATScores
 }


 struct SATScores: Decodable {
     let midpoint: SATSubjects
     let the25th_percentile: SATSubjects2

     enum CodingKeys: String, CodingKey {
         case the25th_percentile = "25th_percentile"
     }
 }




 struct SATSubjects: Decodable {
     let math: Int?
     let writing: Int?
     let critical_reading: Int?
 }


 struct SATSubjects2: Decodable {
     let math: Int?
     let writing: Int?
     let critical_reading: Int?
 }


 struct AdmissionRateDetails: Decodable {
     let overall: Float?
 }

 struct URLName {
     let partialURL = "https://api.data.gov/ed/collegescorecard/v1/schools?school.name="
     var searchTerm: String = ""
     let apiKey = "&api_key=myapikey"
 }

คนแปลงรูปแบบ api ต้อง LANGUAGE.

api json swiftui
2021-11-23 03:43:03
1

คำตอบที่ดีที่สุด

0

พยายามนี้:

struct SATTwentyFive: Decodable {
    let the25th_percentile: SubjectData
    
    enum CodingKeys: String, CodingKey {
        case the25th_percentile = "25th_percentile"
    }
}

EDIT1:

ลองพวกนี้เป็นของ structs ต้องอ่านของคุณ language ข้อมูล(ใช้งานได้ดีสำหรับฉัน):

struct Results: Decodable {
    let results: [SelectedSchool]
}

struct SelectedSchool: Decodable, Identifiable {
    let id: Int
    let fed_sch_cd: String
    let latest: LatestData
}

struct LatestData: Decodable {
    let school: SchoolDetails
    let admissions: AdmissionsDetails
}

struct SchoolDetails: Decodable {
    let name: String
    let school_url: String
}

struct AdmissionsDetails: Decodable {
    let admission_rate: AdmissionRateDetails
    let sat_scores: SATScores
}

// ---- here ----
struct SATScores: Decodable {
    let midpoint: SATSubjects
    let the25th_percentile: SATSubjects

    enum CodingKeys: String, CodingKey {
        case the25th_percentile = "25th_percentile"
        case midpoint = "midpoint"
    }
}

struct SATSubjects: Decodable {
    let math: Int?
    let writing: Int?
    let critical_reading: Int?
}

struct AdmissionRateDetails: Decodable {
    let overall: Float?
}

และถอดรหัส Results เหมือน:

try JSONDecoder().decode(Results.self, from: data)
2021-11-25 03:09:56

ขอบคุณ workingdog-ตอนที่ฉันทำตามที่แนะนำให้ฉันให้ไม่เหมือนกัจะ decodable โพรโทคอลผิดพลาด
boxscorepress.com

ที่เข้าไปในคำตอบของฉันกับ enum CodingKeys ทำงานได้ ฉันต้องปรับปรุงคำตอบของฉันแล้ว พีเอส:ยังไม่โพสความลับของคุณกุญแจถอดมันตอนนี้
workingdog

workingdog-เอารูปแบบ api กุญแจและขอขอบคุณ!!!! ฉันพยายาม 1000 อย่างนะแต่เห็นได้ชัดว่าไม่ใช่คนทางด้านบน จริงๆขอบใจจริงๆเวลาของคุณ!!!
boxscorepress.com

ดีใจที่มันกำลังทำงาน ถ้าคำตอบของฉันขอใช้สามารถทำเครื่องหมายไว้ที่ถูกต้องได้โปรด
workingdog

ฉันทำเครื่องมันแต่ฉันไม่มีเหตุผลเพียงพอ"ชื่อเสียงของคะแนน"มันจะยอมรับของฉันนะมาร์ค มันบอกว่ามันจำเป็นต้องบันทึกเมื่อมันบางอย่าง ขอบคุณอีกครั้ง
boxscorepress.com

โอ้ฉันไม่รู้ว่าคุณไม่สามารถยอมรับคำตอบเมื่อคุณตั้งคำถาม ยังไงก็ขอบคุณค่ะ
workingdog

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่