gpt4 book ai didi

ios - 返回了无效的JSON:无法解析为[String:String],但可以作为NSArray使用

转载 作者:行者123 更新时间:2023-12-01 18:45:22 25 4
gpt4 key购买 nike

我目前正在向Microsoft Emotion API发送请求,请求成功,但是我收到了无效的JSON(无法使用NSJSONSerialization.JSONObjectWithData as! [String: String]SwiftyJSON转换JSON,但可以将其转换为NSArray(我可以使用NSArray)。(所有其他选项都返回nil)

请求

    let params = [ "url": "http://reneemullingslewis.com/wp-content/uploads/2014/08/woman-smiling.png" ]
let body = try? NSJSONSerialization.dataWithJSONObject(params, options: [])
let url = NSURL(string: "https://api.projectoxford.ai/emotion/v1.0/recognize")!
let request = NSMutableURLRequest(URL: url)
request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
request.setValue("XXXXXXXXXXXXXXXXXXXXXX", forHTTPHeaderField: "Ocp-Apim-Subscription-Key")
request.HTTPBody = body
request.HTTPMethod = "POST"

let task = NSURLSession.sharedSession().dataTaskWithRequest(request){ data, response, error in
if error != nil{
print("Error -> \(error)")
return
}
do {
let result = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? NSArray
let dResult = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [String:String]
let json = JSON(data!)
print(result)
print(result?[0]["scores"]??["anger"]) //Is works
print(dResult) //Returns nil
print(json) //Returns 'unknown'

} catch {
print(error)
}
}

task.resume()

排除的JSON(来自API测试控制台的结果)
[
{
"faceRectangle": {
"height": 208,
"left": 172,
"top": 128,
"width": 208
},
"scores": {
"anger": 2.46091458E-05,
"contempt": 0.297730684,
"disgust": 9.475541E-05,
"fear": 1.13360545E-06,
"happiness": 0.564267159,
"neutral": 0.131727561,
"sadness": 1.14351078E-05,
"surprise": 0.0061426633
}
}
]

NSArray结果
(
{
faceRectangle = {
height = 147;
left = 130;
top = 177;
width = 147;
};
scores = {
anger = "0.000382305647";
contempt = "0.304994762";
disgust = "0.006239909";
fear = "0.000005770166";
happiness = "0.6252902";
neutral = "0.06043929";
sadness = "0.002567473";
surprise = "0.00008030776";
};
},
{
faceRectangle = {
height = 48;
left = 732;
top = 35;
width = 48;
};
scores = {
anger = "0.00000843479847";
contempt = "0.00121067557";
disgust = "0.00008578587";
fear = "0.0000008104981";
happiness = "0.9274825";
neutral = "0.07090671";
sadness = "0.000124009457";
surprise = "0.000181075331";
};
}
)

最佳答案

[String:String](aka Dictionary<String,String>)是字典,而不是数组,JSON的常见Swift数组类型是[[String:AnyObject]](aka Array<Dictionary<String,AnyObject>>)

关于ios - 返回了无效的JSON:无法解析为[String:String],但可以作为NSArray使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36505174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com