[英]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.