कैसे बनाने के लिए API कॉल का उपयोग कर संरचना के साथ संख्या में json फ़ाइल

0

सवाल

उपलब्ध कराने के और अधिक विस्तार:

मैं कोशिश कर रहा हूँ का उपयोग करने के लिए एक स्तर से एक एपीआई (नीचे लिंक) में है कि यह संरचना, के एक नंबर पर शुरुआत के स्तर (25th_percentile). मैं असमर्थ हूँ बनाने के लिए एक निरंतर मेरे मॉडल में, क्योंकि मैं नहीं कर सकता शुरू करते हैं मूल्य के साथ एक नंबर (यानी, 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"
 }

एपीआई परिवर्तित करने के लिए 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:

इन की कोशिश की तरह structs पढ़ने के लिए अपने json डेटा (काम करता है अच्छी तरह से मेरे लिए):

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 काम करता है । मैं अद्यतन किया है अपने जवाब. P. S: पोस्ट नहीं अपने गुप्त कुंजी है, यह अब निकालें.
workingdog

workingdog - हटाया एपीआई कुंजी और धन्यवाद!!!! मैं करने की कोशिश की 1000 बातें है, लेकिन जाहिरा तौर पर नहीं । वास्तव में सच में अपने समय की सराहना करते!!!
boxscorepress.com

खुशी है कि यह काम कर रहा है. अगर मेरा जवाब था का उपयोग कर सकता है, यह सही रूप में चिह्नित करें.
workingdog

मैं चिह्नित किया था, लेकिन मैं पर्याप्त नहीं है "प्रतिष्ठा अंक" के लिए यह स्वीकार करने के लिए मेरे निशान. यह कहा, यह उल्लेख किया, यह किसी भी तरह. फिर से धन्यवाद.
boxscorepress.com

ओह, मुझे नहीं पता था आप को स्वीकार नहीं कर सकते एक जवाब जब आप एक प्रश्न पोस्ट. वैसे भी धन्यवाद.
workingdog

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में