繁体   English   中英

Swift:JSON返回值输出为String但需要为Float

[英]Swift: JSON return values are outputted as String but need to be Float

我有一个 JSON 返回,其中数字以String输出。

JSON 返回:

  "currentClasses": [
    {
      "name": "CATE27600B - 3    Mobile App Programming S2@CTEC",
      "grade": "100",
      "weight": "6",
      "credits": "1",
      "Last Updated": "",
      "assignments": []
    },

    {
      "name": "CATE36400B - 1    Prac News Prod 2 S2",
      "grade": "",
      "weight": "5",
      "credits": "1",
      "Last Updated": "1/6/2022",
      "assignments": [
        {
          "assignment": "PA Script #3",
          "category": "Minor Grades",
          "dateAssigned": "02/09/2022",
          "dateDue": "03/04/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Social Media Posts",
          "category": "Minor Grades",
          "dateAssigned": "01/04/2022",
          "dateDue": "03/02/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "MP3 Package/Segment #2",
          "category": "Major Grades",
          "dateAssigned": "01/10/2022",
          "dateDue": "03/02/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Event Coverage",
          "category": "Major Grades",
          "dateAssigned": "01/04/2022",
          "dateDue": "02/25/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "PA Script #2",
          "category": "Minor Grades",
          "dateAssigned": "01/24/2022",
          "dateDue": "02/08/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "MP3 Package/Segment #1",
          "category": "Major Grades",
          "dateAssigned": "01/11/2022",
          "dateDue": "02/04/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "PA Script #1",
          "category": "Minor Grades",
          "dateAssigned": "01/04/2022",
          "dateDue": "01/21/2022",
          "score": "97.00",
          "totalPoints": "100.00"
        },
        {
          "assignment": "MP3 Calendar Check",
          "category": "Non-graded",
          "dateAssigned": "01/04/2022",
          "dateDue": "01/06/2022",
          "score": "100.0",
          "totalPoints": "100.00"
        }
      ]
    },

    {
      "name": "ELA14300B - 4    AP English Literature S2",
      "grade": "85.00",
      "weight": "6",
      "credits": "1",
      "Last Updated": "1/13/2022",
      "assignments": [
        {
          "assignment": "Thesis Practice #1",
          "category": "Minor Grades",
          "dateAssigned": "",
          "dateDue": "01/13/2022",
          "score": "90.00",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Christmas Carol Q3 Essay",
          "category": "Minor Grades",
          "dateAssigned": "",
          "dateDue": "01/05/2022",
          "score": "80.00",
          "totalPoints": "100.00"
        }
      ]
    },

    {
      "name": "MTH45300B - 1    AP Calculus AB S2",
      "grade": "80.80",
      "weight": "6",
      "credits": "1",
      "Last Updated": "1/10/2022",
      "assignments": [
        {
          "assignment": "Unit 6 Test (Integration)",
          "category": "Major Grades",
          "dateAssigned": "",
          "dateDue": "02/08/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Delta Math Practice (Unit 6)",
          "category": "Minor Grades",
          "dateAssigned": "",
          "dateDue": "02/08/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Quiz 4 (Antiderivatives and Rules of Integration)",
          "category": "Minor Grades",
          "dateAssigned": "",
          "dateDue": "01/31/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Quiz 3 (FTC and Definite Integrals)",
          "category": "Minor Grades",
          "dateAssigned": "",
          "dateDue": "01/27/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Quiz 2 (Properties of Def. Integrals)",
          "category": "Minor Grades",
          "dateAssigned": "",
          "dateDue": "01/25/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Quiz 1 (Reimann Sums and Definite Integrals)",
          "category": "Minor Grades",
          "dateAssigned": "",
          "dateDue": "01/19/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Unit 5 Test (Analytical Applications of Derivatives)",
          "category": "Major Grades",
          "dateAssigned": "",
          "dateDue": "01/10/2022",
          "score": "78.00",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Delta Math Practice (Unit 5)",
          "category": "Minor Grades",
          "dateAssigned": "",
          "dateDue": "01/10/2022",
          "score": "85.00",
          "totalPoints": "100.00"
        }
      ]
    },

    {
      "name": "MTH45310B - 4    AP Statistics S2",
      "grade": "0.00",
      "weight": "6",
      "credits": "1",
      "Last Updated": "",
      "assignments": [
        {
          "assignment": "Test - 8 Confidence Intervals",
          "category": "Major Grades",
          "dateAssigned": "",
          "dateDue": "01/26/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Skills Check - 8 Confidence Intervals",
          "category": "Minor Grades",
          "dateAssigned": "",
          "dateDue": "01/24/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Practice - 8.3 (canvas)",
          "category": "Non-graded",
          "dateAssigned": "",
          "dateDue": "01/24/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Practice - 8.2 (canvas)",
          "category": "Non-graded",
          "dateAssigned": "",
          "dateDue": "01/24/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Practice - 8.1 (canvas)",
          "category": "Non-graded",
          "dateAssigned": "",
          "dateDue": "01/24/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Group Skills Check - 7 Sampling Distributions",
          "category": "Minor Grades",
          "dateAssigned": "",
          "dateDue": "01/11/2022",
          "score": "",
          "totalPoints": "50.00"
        }
      ]
    },

    {
      "name": "SCI43300B - 1    AP Environmental Science S2",
      "grade": "",
      "weight": "6",
      "credits": "1",
      "Last Updated": "",
      "assignments": []
    },

    {
      "name": "SST34300 - 4    AP Government",
      "grade": "0.00",
      "weight": "6",
      "credits": "1",
      "Last Updated": "",
      "assignments": [
        {
          "assignment": "Midterm Exam (Units 1 & 2)",
          "category": "Major Grades",
          "dateAssigned": "",
          "dateDue": "02/23/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Unit 2 Major Grade FRQ",
          "category": "Major Grades",
          "dateAssigned": "",
          "dateDue": "02/16/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Unit 2 MC Quiz",
          "category": "Minor Grades",
          "dateAssigned": "",
          "dateDue": "02/14/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Unit 2 Argument FRQ Practice",
          "category": "Minor Grades",
          "dateAssigned": "",
          "dateDue": "02/11/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Unit 2 Congress FRQ Practice",
          "category": "Minor Grades",
          "dateAssigned": "",
          "dateDue": "02/04/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Unit 1 Major Grade FRQ",
          "category": "Major Grades",
          "dateAssigned": "",
          "dateDue": "01/21/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Unit 1 MC Quiz",
          "category": "Minor Grades",
          "dateAssigned": "",
          "dateDue": "01/21/2022",
          "score": "",
          "totalPoints": "100.00"
        },
        {
          "assignment": "Unit 1 Concept Application & Argument FRQ Practice",
          "category": "Minor Grades",
          "dateAssigned": "",
          "dateDue": "01/14/2022",
          "score": "",
          "totalPoints": "100.00"
        }
      ]
    }

  ]
}

但是我需要像这样返回它:

"currentClasses": [
                [
                  "name": "CATE27600A - 3    Mobile App Programming S1@CTEC",
                  "grade": 100,
                  "weight": 6,
                  "credits": 1
                ],
                [
                  "name": "CATE36400A - 1    Prac News Prod 2 S1",
                  "grade": 91.48,
                  "weight": 5,
                  "credits": 1
                ],
                [
                  "name": "ELA14300A - 4    AP English Literature S1",
                  "grade": 88.13,
                  "weight": 6,
                  "credits": 1
                ],
                [
                  "name": "MTH45300A - 1    AP Calculus AB S1",
                  "grade": 79.4,
                  "weight": 6,
                  "credits": 1
                ],
                [
                  "name": "MTH45310A - 4    AP Statistics S1",
                  "grade": 79.48,
                  "weight": 6,
                  "credits": 1
                ],
                [
                  "name": "SCI43300A - 1    AP Environmental Science S1",
                  "grade": 94,
                  "weight": 6,
                  "credits": 1
                ],
                [
                  "name": "SST34310 - 3    AP Economics",
                  "grade": 93.24,
                  "weight": 6,
                  "credits": 1
                ]
            ]

我做了这个结构:

// MARK: - Welcome
struct Welcome: Codable {
    let currentClasses: [CurrentClass]
}

// MARK: - CurrentClass
struct CurrentClass: Codable {
    let name, grade, weight, credits: String
    let lastUpdated: String
    let assignments: [Assignment]

    enum CodingKeys: String, CodingKey {
        case name, grade, weight, credits
        case lastUpdated = "Last Updated"
        case assignments
    }
}

// MARK: - Assignment
struct Assignment: Codable {
    let assignment: String
    let category: Category
    let dateAssigned, dateDue, score, totalPoints: String
}

enum Category: String, Codable {
    case majorGrades = "Major Grades"
    case minorGrades = "Minor Grades"
    case nonGraded = "Non-graded"
}

我特别需要将所有课程的成绩、重量和学分作为Float返回。

您的结构将这些值定义为String类型:

    let name, grade, weight, credits: String

只需将适当的变量更改为Double类型,它们就会以您想要的方式输出。

let name: String
let grade, weight, credits: Double

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM