[英]Codable Swift 4
我不確定如何使用可編碼來解碼情感場,這對我來說很復雜,因為該JSON的結構...我只需要解析情感場。
{
"image_id": "HvRRq86gYY96sVNP+lXHYg==",
"request_id": "1525001300,f1cf060a-dbba-424a-ad75-c315298bbadb",
"time_used": 444,
"faces": [
{
"attributes": {
"emotion": {
"sadness": 13.562,
"neutral": 86.409,
"disgust": 0.001,
"anger": 0.003,
"surprise": 0.002,
"fear": 0.022,
"happiness": 0.001
}
},
"face_rectangle": {
"width": 800,
"top": 451,
"left": 58,
"height": 800
},
"face_token": "75985eed763e1a7cc9aad61c88f492a1"
}
]
}
使用Codable確實可以解碼json數據。
這是您可以編碼以獲取值的基本對象結構(假設變量數據是您從json獲得的數據類型):
struct FaceRectangle: Codable {
var width: Int
var top: Int
var left: Int
var height: Int
}
struct Emotion: Codable {
var sadness: Float
var neutral: Float
var disgust: Float
var anger: Float
var surprise: Float
var fear: Float
var happiness: Float
}
struct Attribute: Codable {
var emotion: Emotion
}
struct Faces: Codable {
var attributes: Attribute
var face_rectangle: FaceRectangle
var face_token: String
}
struct Result : Codable {
var image_id: String
var request_id: String
var time_used: Int
var faces: [Faces]
}
do {
let obj: Result = try JSONDecoder().decode(Result.self, from: data)
print(obj.faces[0].attributes.emotion.anger)
} catch let err {
print(err)
}
我還建議閱讀以下Apple文檔,以獲取有關Codable的更多信息。
我強烈建議您從23m: 40sec開始在Codable上觀看WWDC17的視頻。
您需要做的是遵循JSON結構的嵌套Struct。 例如:
struct Data: Codable {
let image_id: String
let request_id: String
let time_used: Int
/// ....
struct emotion: Codable {
var sadness: Float
var neutral: Float
//etc
}
}
您確實有一個相當復雜的JSON,但希望能有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.