는 방법을 확인 API 를 사용하여 통화 구조체와 수 json 파일

0

질문

을 더 제공하는 세부사항:

나에 액세스하려는 수준에서는 API(아래 링크)는 그것의 구조,수 처음에는 하나의 수준(25th_percentile). 나는 할 수 없을 만드는 일정한 내기 때문에 나는 모델을 시작할 수 없습자 가치 숫자로(즉,25 25th_percentile). 어떻게 액세스할 수 있는 데이터에 25 백분율 수준?

내 코드는 다음과 같습니다. 내가 사용하는 경우 열거형으로 제안,나는"준수하지 않는 디코딩 프로토콜"오류가 있습니다.

     //
 //  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 로 변환하 JSON.

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:

도 이러한 종류의 구조체를 읽 json data(품):

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-할 때 제안을 준수하지 않는 디코딩 프로토콜 오류가 있습니다.
boxscorepress.com

접근 방식에서 내과 답변 enum CodingKeys 작동합니다. 나 업데이트 내 대답이다. P.S:하지 않는 게시하는 비밀키를 제거합니다.
workingdog

workingdog-제거 API 키고 감사합니다!!!!!!!! 나 1000 것들,그러나 분명하지 않습니다. 정말 정말 당신의 시간을 주셔서 감사합니다!!!
boxscorepress.com

기쁜 그것이 작동하는 것입니다. 면 내 대답이었다,사용할 수 있는 마크로 정확하십시오.
workingdog

나를 표시했다 그것은 그러나 내가 충분하지 않"트"그것을 받아들이 내 마크입니다. 그것은 그것을 말했다습니다. 다시 한번 감사드려요.
boxscorepress.com

oh,I did not know 할 수 없습니다 받아들이 대답할 때 게시는 질문입니다. 어쨌든 고맙습니다.
workingdog

다른 언어로

이 페이지는 다른 언어로되어 있습니다

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